sudeep87 / uimafit

Automatically exported from code.google.com/p/uimafit
0 stars 0 forks source link

Consider getting a proper Maven repository and publishing to Maven Central #13

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Richard:
I think it is worth to consider if we can sign up for a proper Nexus Maven
repository at

http://nexus.sonatype.org/oss-repository-hosting.html

Repositories hosted there and meeting certain quality criteria can be
signed up to automatically be 
synced to Maven Central.

For general information on Maven Central see
http://maven.apache.org/guides/mini/guide-
central-repository-upload.html.

Original issue reported on code.google.com by pvogren@gmail.com on 1 May 2010 at 3:11

GoogleCodeExporter commented 8 years ago

Original comment by pvogren@gmail.com on 11 Jun 2010 at 1:32

GoogleCodeExporter commented 8 years ago
I submitted a jira issue for having uimaFIT hosted using the instructions given 
above.  Hopefully, this will be fairly painless.

Original comment by pvogren@gmail.com on 11 Jun 2010 at 8:40

GoogleCodeExporter commented 8 years ago
The technical side should be fine. I have already worked with Nexus and it is a 
fine tool. I'm curious how well the workflow will come along.

Original comment by richard.eckart on 11 Jun 2010 at 8:44

GoogleCodeExporter commented 8 years ago
My issue got the following comment:  "uimafit is an invalid groupId, can you 
change it to com.googlecode.uimafit, or org.uimafit if you own domain 
uimafit.org"

I assume the latter is better so I snapped up uimafit.org and changed the 
groupId to org.uimafit in the ticket.

Original comment by pvogren@gmail.com on 18 Jun 2010 at 5:07

GoogleCodeExporter commented 8 years ago
Yey! 

Original comment by richard.eckart on 19 Jun 2010 at 9:56

GoogleCodeExporter commented 8 years ago
see https://issues.sonatype.org/browse/OSSRH-537 for next steps

Original comment by pvogren@gmail.com on 21 Jun 2010 at 2:28

GoogleCodeExporter commented 8 years ago
I'll set up our Hudson to automatically deploy snapshot versions to the 
Sonatype Nexus repository.

Original comment by richard.eckart on 21 Jun 2010 at 5:36

GoogleCodeExporter commented 8 years ago
Ok, done. Everything was right _except_ that I had edited the wrong 
settings.xml file ;)

So - Hudson is configured to check the uimaFIT SVN once per day and up there 
are changes, it will compile and upload a new snapshot to the Sonatype Nexus. 
That is, unless there are unit test failures, in which case it will not upload.

Original comment by richard.eckart on 1 Jul 2010 at 8:43

GoogleCodeExporter commented 8 years ago
that sounds really nice.  so, if I want to depend on a snapshot version that 
sits there, then what do I need to do?

Also, this does not obviate the need to for one of us to go through the steps 
outlined in the link above for when we publish a release.  Correct?  

Just trying to understand exactly what you did means.

Original comment by pvogren@gmail.com on 1 Jul 2010 at 8:58

GoogleCodeExporter commented 8 years ago
The snapshot version is automatically deployed daily by Husdon now (if there 
are changes in SVN).

You can access the SNAPSHOTs and upcoming releases by adding the public 
sonatype repo to your personal settings.xml file:

<profiles>
    <profile>
      <id>sonatype-oss-repo</id>
      <repositories>
        <repository>
          <id>sonatype-oss</id>
          <url>https://oss.sonatype.org/content/groups/public</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
        </repository>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>sonatype-oss-repo</activeProfile>
  </activeProfiles>

Once you do that, you will be able to download artifacts from there. If you use 
the latest m2eclipse version, you should also be able to browse it in Eclipse.

Before we release the next version, we have to modify the pom.xml to point to 
the place indicated in the Sonatype Jira issue. Once we do a release build 
using the Maven release plugin, it will upload to there - no longer to 
googlecode. I have never used that "staging". As far as I understand we are 
supposed to put the staging repository into the pom.xml for release versions:

https://oss.sonatype.org/service/local/staging/deploy/maven2

Probably we need then to manually promote the staged artifact into the 
"Releases" repository using the web interface. 

The the pom should receive a section like this:

  <distributionManagement>
    <repository>
      <id>sonatype-oss</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
      <id>sonatype-oss</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

In your settings XML you should add this section in the <servers> section:

<server>
      <id>sonatype-oss</id>
      <username>USERNAME</username>
      <password>PASSWORD</password>
</server> 

My local setup is actually a bit different - so there may be mistakes in the 
above that I did not notice.

Original comment by richard.eckart on 1 Jul 2010 at 9:34

GoogleCodeExporter commented 8 years ago
I'm going to attempt releasing a 0.9.14 version today.  I will let you know how 
it goes and update the CreatingARelease wiki accordingly.

Original comment by pvogren@gmail.com on 2 Jul 2010 at 5:48

GoogleCodeExporter commented 8 years ago
well - I tried to get this to work but failed.  My goal was to release a 
version 0.9.14 and everything goes fine up until I run "mvn release:perform" 
(that is, I run "mvn clean deploy", "mvn release:clean", "mvn release:prepare" 
without a problem).  When I run "mvn release:perform" I get the following error:

[INFO] Cannot execute mojo: resources. It requires a project with an existing 
pom.xml, but the build is not using one.

I looked up this error and it is a symptom of being in the wrong directory.  
This sort of makes sense because shortly before the error message shows up the 
following message is shown:

[INFO] Working directory: 
C:\Users\Philip\Documents\Academic\workspace\uimaFIT\target

Not sure why it would be doing this.  Anyways, I tried a number of things with 
the pom file and tried to follow the instructions very carefully and I have to 
give up for now.  Here's more of the output:

C:\Users\Philip\Documents\Academic\workspace\uimaFIT>mvn release:perform
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'release'.
[INFO] ------------------------------------------------------------------------
[INFO] Building uimaFIT
[INFO]    task-segment: [release:perform] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [release:perform {execution: default-cli}]
[INFO] Checking out the project to perform the release ...
[INFO] Executing: cmd.exe /X /C "svn --non-interactive checkout https://uimafit.
googlecode.com/svn/tags/uimafit-0.9.14 C:\Users\Philip\Documents\Academic\worksp
ace\uimaFIT\target\checkout"
[INFO] Working directory: C:\Users\Philip\Documents\Academic\workspace\uimaFIT\t
arget
[INFO] Executing goals 'deploy'...
[INFO] Executing: cmd.exe /X /C ""C:\Program Files (x86)\apache-maven-2.2.1\bin\
..\bin\mvn" deploy --no-plugin-updates -DperformRelease=true -f pom.xml"
    [INFO] Scanning for projects...
    [INFO] ---------------------------------------------------------------------
---
    [INFO] Building Maven Default Project
    [INFO]    task-segment: [deploy]
    [INFO] ---------------------------------------------------------------------
---
    [INFO] ---------------------------------------------------------------------
---
    [ERROR] BUILD ERROR
    [INFO] ---------------------------------------------------------------------
---
    [INFO] Cannot execute mojo: resources. It requires a project with an existin
g pom.xml, but the build is not using one.
    [INFO] ---------------------------------------------------------------------
---
    [INFO] For more information, run Maven with the -e switch
    [INFO] ---------------------------------------------------------------------
---
    [INFO] Total time: 1 second
    [INFO] Finished at: Fri Jul 02 14:42:08 MDT 2010
    [INFO] Final Memory: 7M/18M
    [INFO] ---------------------------------------------------------------------
---
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Maven execution failed, exit code: '1'

Original comment by pvogren@gmail.com on 2 Jul 2010 at 8:52

GoogleCodeExporter commented 8 years ago
When I do a release, I usually do a 

mvn clean install
mvn release:prepare
mvn release:perform

I have never used the "deploy" - do you do that for a particular reason?

Other than that, I suppose it should work. I could try doing that release on my 
machine.

Original comment by richard.eckart on 3 Jul 2010 at 8:20

GoogleCodeExporter commented 8 years ago
I was just blindly following the instructions on the sonatype page given above. 

Original comment by pvogren@gmail.com on 3 Jul 2010 at 8:44

GoogleCodeExporter commented 8 years ago
According to that page "mvn deploy" is to publish snapshots. We shouldn't have 
to worry about that atm since Hudson is doing that daily.

 Looking into the rest...

Original comment by richard.eckart on 3 Jul 2010 at 8:57

GoogleCodeExporter commented 8 years ago
I restructured the project so that the release plugin can work properly.

You will have to re-checkout uimaFIT - directly the trunk. Use "Checkout as 
Maven project". Eclipse will create 3 projects from that. The release has to be 
done for the top-level project "uimafit-parent".

I could successfully run the perform stage and the stuff got uploaded to Nexus. 
But then when I tried to close the release, it complained about invalid SHA1 
and MD5 checksums. Will try again later.

Original comment by richard.eckart on 3 Jul 2010 at 11:00

GoogleCodeExporter commented 8 years ago
Closing this issue. The release procedure with Sonatype OSS works - 0.9.14 
should soon be pushed to Maven central. Wiki has been updated. Project was 
reorganized to have a uimafit-parent aggregator project which contains uimafit 
and uimafit-examples as modules. This was necessary to get the release process 
work properly
Please re-checkout uimaFIT now as indicated by my last post.

Original comment by richard.eckart on 4 Jul 2010 at 12:45

GoogleCodeExporter commented 8 years ago
Richard, 

Thanks for all your hard work on this issue.  I have a few questions for you 
though.  First, is version 0.9.14 available from a central repository yet.  If 
so, where?

I don't remember now exactly what hoops I had to jump through to get to where I 
am now with building uimaFIT - and I am still not there yet.  First, I had to 
update to m2eclipse version 0.10.0.  I could not figure out how to uninstall my 
0.9.8 version and so I took this as my opportunity to upgrade to Helios.  The 
most recent version of m2eclipse is required in order to install the "Maven SCM 
Handler for SVN" which must be installed in order to use the "Checkout as Maven 
Project".  Once, I figured this out I got a lot further.  

So, I followed the instructions in comment 16.  One addition I would make is 
that it did not work for me unless I actually browsed to the SCM URL using the 
browse button and the dialog "Repository Browser".  It checks out three maven 
projects as expected (thought this didn't work the first time - I am repeating 
my steps as I write this.) Not surprisingly, the uimafit project does not 
compile complaining about missing type files.  

I'm not sure what to do now.  If I run "mvn test" from the home directory of 
uimafit-parent or uimafit it complains that it cannot compile the test code - 
i.e. JCasGen does not run first any more.  

Original comment by pvogren@gmail.com on 7 Jul 2010 at 10:32

GoogleCodeExporter commented 8 years ago
btw - for now I did the obvious workaround of manually generating the jcas 
files and everything seems fine now.  so, I suppose that the jcasgen not 
working should simply go in another bug (esp. considering this one is closed.)

Original comment by pvogren@gmail.com on 7 Jul 2010 at 11:20

GoogleCodeExporter commented 8 years ago
It is not yet in Maven Central, but it is available via 
https://oss.sonatype.org/content/groups/public/org/uimafit/uimafit/

I missed the last point in the Sonatype how-to which points out that the sync 
has to be activated after the first release. I requested sync with Maven 
Central for 0.9.14 now via the Sonatype JIRA.

Original comment by richard.eckart on 8 Jul 2010 at 8:08

GoogleCodeExporter commented 8 years ago
Ok, I can reproduce this. Will fix that.

Original comment by richard.eckart on 8 Jul 2010 at 8:20