Explorar o código

Merge pull request #1856 from pherl/javalite

Add protoc-gen-javalite pom file in javalite branch.
Jisi Liu %!s(int64=9) %!d(string=hai) anos
pai
achega
a1a718123f
Modificáronse 3 ficheiros con 149 adicións e 4 borrados
  1. 15 4
      protoc-artifacts/README.md
  2. 134 0
      protoc-artifacts/javalite-pom.xml
  3. 0 0
      protoc-artifacts/protoc-pom.xml

+ 15 - 4
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

+ 134 - 0
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>

+ 0 - 0
protoc-artifacts/pom.xml → protoc-artifacts/protoc-pom.xml