Author: markt
Date: Fri Jun 15 10:26:56 2012
New Revision: 1350563

URL: http://svn.apache.org/viewvc?rev=1350563&view=rev
Log:
Simplify Maven publishing
- Use Nexus throughout
- Remove now unused scp related sections
- Prompt for passwords rather than reading them from a file

Update version for Tomcat 8

Added:
    tomcat/trunk/res/maven/README.txt   (with props)
Modified:
    tomcat/trunk/res/maven/mvn-pub.xml
    tomcat/trunk/res/maven/mvn.properties.default

Added: tomcat/trunk/res/maven/README.txt
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/README.txt?rev=1350563&view=auto
==============================================================================
--- tomcat/trunk/res/maven/README.txt (added)
+++ tomcat/trunk/res/maven/README.txt Fri Jun 15 10:26:56 2012
@@ -0,0 +1,39 @@
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: README.txt 1234158 2012-01-20 21:44:13Z markt $
+
+General preparatations before any publishing
+1 - Download Maven Ant Tasks (version 2.1.0 is known to work) and place it in
+    this directory
+2 - Generate a standard Tomcat release (ant release)
+3 - Copy mvn.properties.default to mvn.properties and adjust it as necessary.
+    You will need to set asf.ldap.username and you'll probably need to set
+    gpg.exec
+    The other properties should be OK. NOte you;ll be prompted for your GPG
+    pass-phrase and LDAP password when the script runs
+
+To publish a snaphost do the following:
+1 - ant -f mvn-pub.xml deploy-snapshot
+    This populates 
https://repository.apache.org/content/repositories/snapshots/org/apache/tomcat/
+
+To release do the following:
+1 - ant -f mvn-pub.xml deploy-release
+    that step creates a staging area in 
https://repository.apache.org/index.html#stagingRepositories
+2 - check the upload and then close the repository
+3 - include the repository in the VOTE thread
+4 - in https://repository.apache.org/index.html#stagingRepositories release it

Propchange: tomcat/trunk/res/maven/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/res/maven/mvn-pub.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/mvn-pub.xml?rev=1350563&r1=1350562&r2=1350563&view=diff
==============================================================================
--- tomcat/trunk/res/maven/mvn-pub.xml (original)
+++ tomcat/trunk/res/maven/mvn-pub.xml Fri Jun 15 10:26:56 2012
@@ -15,49 +15,38 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project name="Tomcat 7.0 Maven Deployment" default="" basedir="." 
xmlns:artifact="urn:maven-artifact-ant">
+<project name="Tomcat 8.0 Maven Deployment" default="" basedir="."
+         xmlns:artifact="urn:maven-artifact-ant">
   <!--
-    Built for using Maven Ant Tasks 2.0.10 - download to this directory
-    You'll also need to install jsch 0.1.42 and manually configure
-    wagon-ssh 1.0-beta-2 to use the updated jsch. This will also add a
-    requirement for jzlib 1.0.7
-  -->
-  <!--
-  Properties required to be set:
-  maven.repo.url - the URL of the repository, for example 
scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository
-  maven.repo.repositoryId - the id of the repository, for example 
apache.snapshots
-  maven.deploy.version - the version that the components will be deployed as, 
for example @MAVEN.DEPLOY.VERSION@
-  tomcat.lib.path - the path to tomcat JAR files
-  tomcat.bin.path - the path to tomcat's bin directory (for other JAR files)
-  tomcat.pom.path - the path to the POM files
-
-  For passwordless upload you'll also need to set
-  maven.scp.username    - Your ASF ID
-  maven.scp.privateKey  - Path to your exported ssh key
-
-  All these can be defined by mvn.properties (and defaults are in 
mvn.properties.default)
-
-  To get a private key to work on Windows, I followed these steps
-  1. on a linux box execute 'ssh-keygen -t rsa'
-  2. same linux box execute 'cat id_rsa.pub >> authorized_keys' and 'cat 
id_rsa.pub >> authorized_keys2'
-  3. Copy id_rsa and id_rsa.pub to my windows box
-  4. Import id_rsa into puttygen
-  5. export id_rsa from puttygen to OpenSSH key
-  6. The key you exported from puttygen is the one you reference from the 
<privateKey> element
-  7. Manually create the %USERPROFILE%\.ssh directory
-  8. Manually add the %USERPROFILE%\.ssh\known_hosts file with the entry for 
the host
+    Built for using Maven Ant Tasks (version 2.1.0 is known to work)
   -->
+
   <property file="${basedir}/mvn.properties"/>
   <property file="${basedir}/mvn.properties.default"/>
   <property name="local.repo" value="${user.home}/.m2/repository"/>
 
   <target name="init-maven">
-    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" 
uri="urn:maven-artifact-ant">
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
+             uri="urn:maven-artifact-ant">
       <classpath>
-        <pathelement location="${basedir}/maven-ant-tasks-2.0.10.jar" />
+        <pathelement location="${basedir}/maven-ant-tasks-2.1.0.jar" />
       </classpath>
     </typedef>
-    <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+  </target>
+
+  <target name="maven-deploy-nexus" depends="init-maven">
+    <!--deploy it in nexus -->
+    <artifact:deploy file="${file}">
+        <pom file="${pom}.tmp"/>
+        <remoteRepository url="${maven.repo.url}" layout="default">
+          <authentication username="${asf.ldap.username}"
+                          password="${asf.ldap.password}"/>
+        </remoteRepository>
+        <attach file="${file}.asc" type="jar.asc"/>
+        <attach file="${src}" classifier="sources" type="jar"/>
+        <attach file="${src}.asc" classifier="sources" type="jar.asc"/>
+        <attach file="${pom}.asc" type="pom.asc"/>
+    </artifact:deploy>
   </target>
 
   <target name="maven-deploy" depends="init-maven">
@@ -75,21 +64,24 @@
     </copy>
 
     <!--sign the jar, the source and the pom -->
-    <exec executable="${maven.gpg.exec}" failonerror="true" 
inputstring="${maven.gpg.passphrase}">
+    <exec executable="${gpg.exec}" failonerror="true"
+          inputstring="${gpg.passphrase}">
       <arg value="--passphrase-fd"/>
       <arg value="0"/>
       <arg value="-a"/>
       <arg value="-b"/>
       <arg value="${file}"/>
     </exec>
-    <exec executable="${maven.gpg.exec}" failonerror="true" 
inputstring="${maven.gpg.passphrase}">
+    <exec executable="${gpg.exec}" failonerror="true"
+          inputstring="${gpg.passphrase}">
       <arg value="--passphrase-fd"/>
       <arg value="0"/>
       <arg value="-a"/>
       <arg value="-b"/>
       <arg value="${src}"/>
     </exec>
-    <exec executable="${maven.gpg.exec}" failonerror="true" 
inputstring="${maven.gpg.passphrase}">
+    <exec executable="${gpg.exec}" failonerror="true"
+          inputstring="${gpg.passphrase}">
       <arg value="--passphrase-fd"/>
       <arg value="0"/>
       <arg value="-a"/>
@@ -100,16 +92,11 @@
     </exec>
 
     <!--deploy it-->
-    <artifact:deploy file="${file}">
-        <pom file="${pom}.tmp"/>
-        <remoteRepository url="${maven.repo.url}" layout="default">
-          <authentication username="${maven.scp.username}" 
privateKey="${maven.scp.privateKey}" passphrase="${maven.scp.passphrase}"/>
-        </remoteRepository>
-        <attach file="${file}.asc" type="jar.asc"/>
-        <attach file="${src}" classifier="sources" type="jar"/>
-        <attach file="${src}.asc" classifier="sources" type="jar.asc"/>
-        <attach file="${pom}.asc" type="pom.asc"/>
-    </artifact:deploy>
+    <antcall target="maven-deploy-nexus">
+        <param name="file" value="${file}"/>
+        <param name="pom" value="${pom}"/>
+        <param name="src" value="${src}"/>
+    </antcall>
 
     <delete file="${pom}.tmp"/>
     <delete file="${pom}.asc"/>
@@ -151,14 +138,16 @@
     </copy>
 
     <!--sign the jar and pom -->
-    <exec executable="${maven.gpg.exec}" failonerror="true" 
inputstring="${maven.gpg.passphrase}">
+    <exec executable="${gpg.exec}" failonerror="true"
+          inputstring="${gpg.passphrase}">
       <arg value="--passphrase-fd"/>
       <arg value="0"/>
       <arg value="-a"/>
       <arg value="-b"/>
       <arg value="${file}"/>
     </exec>
-    <exec executable="${maven.gpg.exec}" failonerror="true" 
inputstring="${maven.gpg.passphrase}">
+    <exec executable="${gpg.exec}" failonerror="true"
+          inputstring="${gpg.passphrase}">
       <arg value="--passphrase-fd"/>
       <arg value="0"/>
       <arg value="-a"/>
@@ -171,8 +160,9 @@
     <!--deploy it-->
     <artifact:deploy file="${file}">
       <pom file="${pom}.tmp"/>
-      <remoteRepository url="${maven.repo.url}" layout="default">
-        <authentication username="${maven.scp.username}" 
privateKey="${maven.scp.privateKey}" passphrase="${maven.scp.passphrase}"/>
+      <remoteRepository url="${maven.repo.url}" layout="default" >
+        <authentication username="${asf.ldap.username}"
+                        password="${asf.ldap.password}"/>
       </remoteRepository>
       <attach file="${file}.asc" type="jar.asc"/>
       <attach file="${pom}.asc" type="pom.asc"/>
@@ -199,7 +189,7 @@
     </sequential>
   </macrodef>
 
-  <target name="generic-deploy" depends="init-maven">
+  <target name="generic-deploy" depends="init-maven,init-gpg,init-ldap">
     <!-- Standard jars in bin directory -->
     <!-- Skip bootstrap.jar - it is just a subset of catalina.jar -->
     <doMavenDeploy artifactId="tomcat-juli"
@@ -306,30 +296,34 @@
 
   <target name="deploy-snapshot">
     <antcall target="generic-deploy">
-      <param name="maven.repo.repositoryId" 
value="${maven.snapshot.repo.repositoryId}"/>
+      <param name="maven.repo.repositoryId"
+             value="${maven.snapshot.repo.repositoryId}"/>
       <param name="maven.repo.url" value="${maven.snapshot.repo.url}"/>
-      <param name="maven.deploy.version" value="7.0-SNAPSHOT"/>
-    </antcall>
-  </target>
-
-  <target name="deploy-staging">
-    <antcall target="generic-deploy">
-      <param name="maven.repo.repositoryId" 
value="${maven.release.repo.repositoryId}"/>
-      <param name="maven.repo.url" value="${maven.release.repo.url}"/>
-      <param name="maven.deploy.version" 
value="${maven.release.deploy.version}"/>
+      <param name="maven.deploy.version" value="8.0-SNAPSHOT"/>
     </antcall>
   </target>
 
   <target name="deploy-release">
     <antcall target="generic-deploy">
-      <param name="maven.repo.repositoryId" 
value="${maven.asf.release.repo.repositoryId}"/>
+      <param name="maven.repo.repositoryId"
+             value="${maven.asf.release.repo.repositoryId}"/>
       <param name="maven.repo.url" value="${maven.asf.release.repo.url}"/>
-      <param name="maven.deploy.version" 
value="${maven.asf.release.deploy.version}"/>
+      <param name="maven.deploy.version"
+             value="${maven.asf.release.deploy.version}"/>
     </antcall>
   </target>
 
-  <target name="help">
-    <echo>Help is on the way!</echo>
+  <target name="init-gpg">
+    <input message="Enter GPG pass-phrase" addproperty="gpg.passphrase" >
+      <handler type="secure"/>
+    </input>
+  </target>
+
+  <target name="init-ldap">
+    <input message="Enter ASF LDAP (same svn) password"
+           addproperty="asf.ldap.password" >
+      <handler type="secure"/>
+    </input>
   </target>
 
 </project>

Modified: tomcat/trunk/res/maven/mvn.properties.default
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/res/maven/mvn.properties.default?rev=1350563&r1=1350562&r2=1350563&view=diff
==============================================================================
--- tomcat/trunk/res/maven/mvn.properties.default (original)
+++ tomcat/trunk/res/maven/mvn.properties.default Fri Jun 15 10:26:56 2012
@@ -19,27 +19,23 @@
 # no need to change this file
 #
 
-#Maven properties
-maven.scp.username=fhanik
-maven.scp.privateKey=${user.home}/.ssh/id_rsa.export
-maven.scp.passphrase=
-maven.gpg.exec=C:/software/GNU/GnuPG/gpg.exe
-maven.gpg.passphrase=*****
+# Authentication
+# Note: You will be prompted for your GPG passphrase and LDAP password when
+#        running this script
+asf.ldap.username=<!-- YOUR APACHE LDAP USERNAME -->
+gpg.exec=C:/software/GNU/GnuPG/gpg.exe
 
-#Maven snapshot properties
-maven.snapshot.repo.url=scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository
+# ASF Snapshot Repository (hosted on Nexus)
+maven.snapshot.repo.url=https://repository.apache.org/content/repositories/snapshots
 maven.snapshot.repo.repositoryId=apache.snapshots
 
-#Maven release properties for Tomcat staging
-maven.release.repo.url=scp://people.apache.org/www/tomcat.apache.org/dev/dist/m2-repository
-maven.release.repo.repositoryId=tomcat-staging
-maven.release.deploy.version=8.0.0
-
-#Maven release properties for the main ASF repo
-maven.asf.release.repo.url=scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository
+# ASF Release Repository (hosted on Nexus)
+# Note: Also used for staging releases prior to voting
+maven.asf.release.repo.url=https://repository.apache.org/service/local/staging/deploy/maven2
 maven.asf.release.repo.repositoryId=apache.releases
-maven.asf.release.deploy.version=8.0.0
 
+# Release version info
+maven.asf.release.deploy.version=8.0.0
 
 #Where do we load the libraries from
 tomcat.lib.path=../../output/build/lib



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to