summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJisi Liu <liujisi@google.com>2016-07-26 17:56:11 -0700
committerGitHub <noreply@github.com>2016-07-26 17:56:11 -0700
commita1a718123f4edc9f77e2cd02691ffa10d2e87f49 (patch)
tree6d48da3f2d49fd1c66e9db3da4acbd8d54710561
parent9c8f603b70de4829c1e40466a7cc8c5ea6bd0522 (diff)
parent236fb11189b8262cfb8a21a4a16742f5867c91fa (diff)
downloadprotobuf-javalite-a1a718123f4edc9f77e2cd02691ffa10d2e87f49.tar.gz
Merge pull request #1856 from pherl/javalite
Add protoc-gen-javalite pom file in javalite branch.
-rw-r--r--protoc-artifacts/README.md19
-rw-r--r--protoc-artifacts/javalite-pom.xml134
-rw-r--r--protoc-artifacts/protoc-pom.xml (renamed from protoc-artifacts/pom.xml)0
3 files changed, 149 insertions, 4 deletions
diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md
index a910fe0d..fc1cac35 100644
--- a/protoc-artifacts/README.md
+++ b/protoc-artifacts/README.md
@@ -1,3 +1,14 @@
+# Special notes about building pre-compiled protoc-gen-javalite
+This section is only visible from the javalite branch, which is forked from the
+master branch to provide a stable java lite support. The ``protoc-gen-javalite``
+plugin can only be built and published in this branch.
+
+The sections below in this README are branched from the master, with all the mvn
+commands changed to have an extra ``-f javalite-pom.xml`` parameter to load the
+correct configuration for plugins. The original ``pom.xml`` in this branch is
+renamed to ``protoc-pom.xml`` to prevent the protoc from being accidentally
+published using this branch.
+
# Build scripts that publish pre-compiled protoc artifacts
``protoc`` is the compiler for ``.proto`` files. It generates language bindings
for the messages and/or RPC services from ``.proto`` files.
@@ -36,7 +47,7 @@ $ ./autogen.sh && ./configure && make
## To install artifacts locally
The following command will install the ``protoc`` artifact to your local Maven repository.
```
-$ mvn install
+$ mvn -f javalite-pom.xml install
```
## Cross-compilation
@@ -57,7 +68,7 @@ Frequently used values are:
For example, MinGW32 only ships with 32-bit compilers, but you can still build
32-bit protoc under 64-bit Windows, with the following command:
```
-$ mvn install -Dos.detected.arch=x86_32
+$ mvn -f javalite-pom.xml install -Dos.detected.arch=x86_32
```
## To push artifacts to Maven Central
@@ -81,7 +92,7 @@ Windows.
Use the following command to deploy artifacts for the host platform to a
staging repository.
```
-$ mvn clean deploy -P release
+$ mvn -f javalite-pom.xml clean deploy -P release
```
It creates a new staging repository. Go to
https://oss.sonatype.org/#stagingRepositories and find the repository, usually
@@ -92,7 +103,7 @@ subsequent deployments you will need to provide the repository name that you
have found in the first deployment so that all artifacts go to the same
repository:
```
-$ mvn clean deploy -P release -Dstaging.repository=comgoogle-123
+$ mvn -f javalite-pom.xml clean deploy -P release -Dstaging.repository=comgoogle-123
```
A 32-bit artifact can be deployed from a 64-bit host with
diff --git a/protoc-artifacts/javalite-pom.xml b/protoc-artifacts/javalite-pom.xml
new file mode 100644
index 00000000..ca6720a7
--- /dev/null
+++ b/protoc-artifacts/javalite-pom.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.google</groupId>
+ <artifactId>google</artifactId>
+ <version>1</version>
+ </parent>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protoc-gen-javalite</artifactId>
+ <version>3.0.0</version>
+ <packaging>pom</packaging>
+ <name>Protobuf Java Lite Compiler Plugin</name>
+ <description>
+ The Protobuf Compiler (protoc) compiler plugin to generate Java Lite files.
+ </description>
+ <inceptionYear>2008</inceptionYear>
+ <url>https://developers.google.com/protocol-buffers/</url>
+ <licenses>
+ <license>
+ <name>New BSD license</name>
+ <url>http://www.opensource.org/licenses/bsd-license.php</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+ <scm>
+ <url>https://github.com/google/protobuf</url>
+ <connection>
+ scm:git:https://github.com/google/protobuf.git
+ </connection>
+ </scm>
+ <build>
+ <extensions>
+ <extension>
+ <groupId>kr.motd.maven</groupId>
+ <artifactId>os-maven-plugin</artifactId>
+ <version>1.2.3.Final</version>
+ </extension>
+ </extensions>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.1.1</version>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <executable>bash</executable>
+ <arguments>
+ <argument>build-protoc.sh</argument>
+ <argument>${os.detected.name}</argument>
+ <argument>${os.detected.arch}</argument>
+ <argument>protoc-gen-javalite</argument>
+ </arguments>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.8</version>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${basedir}/target/protoc-gen-javalite.exe</file>
+ <classifier>${os.detected.name}-${os.detected.arch}</classifier>
+ <type>exe</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>release</id>
+ <properties>
+ <!-- Specify the staging repository to deploy to. This can be left
+ empty for the first deployment, and Sonatype will create one. For
+ subsequent deployments it should be set to what Sonatype has
+ created, so that all deployments will go to the same repository.
+ -->
+ <staging.repository></staging.repository>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.5</version>
+ <executions>
+ <execution>
+ <id>sign-artifacts</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ <version>1.6.3</version>
+ <extensions>true</extensions>
+ <configuration>
+ <serverId>sonatype-nexus-staging</serverId>
+ <nexusUrl>https://oss.sonatype.org/</nexusUrl>
+ <skipStagingRepositoryClose>true</skipStagingRepositoryClose>
+ <autoReleaseAfterClose>false</autoReleaseAfterClose>
+ <stagingRepositoryId>${staging.repository}</stagingRepositoryId>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/protoc-pom.xml
index 6bb71b6e..6bb71b6e 100644
--- a/protoc-artifacts/pom.xml
+++ b/protoc-artifacts/protoc-pom.xml