I am trying to release a project in the Artifactory repository. It’s a project which is a dependency of my main project, so I would like to put the pom, the .jar and the sources.jar in the artifactory repository.
The settings.xml file is stored in the maven directory :
D:\...\...\maven\apache-maven-3.3.1\conf
I have already tagged the version using following maven command :
mvn clean release:prepare
Then, if I try :
mvn clean release:perform –Partifactory
, I get the error :
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project ........ : Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter
What should I do to use the artifactory profile ? Is it possible without changing the pom ?
I have tried without success to copy the settings.xml in my local maven repository.
If I have to change the pom, can I first come back before the state obtained after the mvn release:prepare command ? In the following link, I didn’t understand if I have to do something manually or not (remove tag from the SCM) :
http://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html
The settings.xml file :
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:\...\...\maven\repository</localRepository>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://x/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://x/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>plugins-release</name>
<url>http://x/artifactory/plugins-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>http://x/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
The pom :
<?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">
<parent>
<groupId>....</groupId>
<artifactId>my-parent</artifactId>
<version>1.0.6</version>
<relativePath />
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>....</groupId>
<artifactId>myproject</artifactId>
<packaging>jar</packaging>
<version>1.9.6-SNAPSHOT</version>
<name>myproject</name>
<url>${wiki.url}</url>
<scm> <developerConnection>scm:svn:http://x/svn/main/y/Development/Components/trunk/myproject</developerConnection>
<url>http://x/svn/main/y/Development/Components/trunk/myproject</url>
</scm>
<ciManagement>
<system>${ciManagement.system}</system>
<url>${ciManagement.url}/${project.artifactId}</url>
</ciManagement>
<properties>
</properties>
<dependencies>
<! - - my dependencies - - >
</dependencies>
<build>
<plugins>
<plugin>
<inherited>false</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.1</version>
<configuration> <tagBase>http://x/svn/main/y/Development/Components/tags</tagBase>
</configuration>
</plugin>
</plugins>
</build>
</project>
The parent pom :
<!-- language: lang-xml -->
<?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>
<groupId>....</groupId>
<artifactId>my-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.6</version>
<name>my-parent</name>
<url>${wiki.url}</url>
<scm>
<developerConnection>scm:svn:http://x/svn/main/y/Development/Components/tags/my-parent-1.0.6</developerConnection>
<url>http://x/svn/main/y/Development/Components/tags/my-parent-1.0.6</url>
</scm>
<ciManagement>
<system>${ciManagement.system}</system>
<url>${ciManagement.url}/${project.artifactId}</url>
</ciManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
</plugin>
</plugins>
</build>
</project>
Two things. You should declare a <distributionManagement> section in your POM:
<project>
...
<distributionManagement>
<repository>
<id>my-artifactory</id>
<name>Artifactory Release Repo</name>
<url>http://x/artifactory/libs-release</url>
</repository>
<snapshotRepository>
<id>my-artifactory</id>
<name>Artifactory Release Repo</name>
<url>http://x/artifactory/libs-snapshot</url>
</snapshotRepository>
</distributionManagement>
</project>
The <id> tags must match an entry in your settings.xml for the credentials to match:
<settings>
...
<servers>
<server>
<id>my-artifactory</id>
<username>bob</username>
<password>secret</password>
</server>
</servers>
</settings>
Now, that being said, since mvn release:prepare has already tagged the release in your VCS, you don't need to cut a new release, but I would advise you to add the <distributionManagement> section to the POM. One way to deploy the artifacts is to simply get the tag from the VCS and do an mvn deploy, like so:
svn co <the url to your tag>
mvn -DaltDeploymentRepository=my-artifactory::default::http://x/artifactory/libs-release deploy
Related
Say I have the following profile defined in my ~/.m2/settings.xml file
<profiles>
<profile>
<id>artifactory</id>
</repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>thirdparty</id>
<name>scscm-thirdparty</name>
<url>http://www.mycompany.com/artifactory/my-thirdparty-repo</url>
</repository>
</repositories>
</profile>
</profiles>
Now I want to download a home-built apr-1.6.2.tar.gz arfifact from the thirdparty repository id defined in the settings.xml, so in my pom.xml file I have
<artifactId>apr</artifactId>
<groupId>com.company</groupId>
<version>1.6.2</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.apache</groupId>
<artifactId>apr</artifactId>
<version>1.6.2</version>
<type>tar.gz</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>apr</id>
<phase>pre-integration-test</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
# HOW DO I SPECIFY URL FROM PROFILE HERE????
<unpack>false</unpack>
</configuration>
</execution>
</executions>
</plugin>
</plujgins>
</build>
I see examples of profiles online, but they're all defined in the pom.xml itself, but that's not what I want to do. I just want to use a URL defined in my settings.xml profile inside my pom.xml file.
you can achieve this in multiple ways
Set active profile in Settings.xml
<profiles>
<profile>
<id>artifactory</id>
</repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>thirdparty</id>
<name>scscm-thirdparty</name>
<url>http://www.mycompany.com/artifactory/my-thirdparty-repo</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
Set active profile from CLI
mvn clean verify -P artifactory
set active profile as default in Settings.xml
<profiles>
<profile>
<id>artifactory</id>
</repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>thirdparty</id>
<name>scscm-thirdparty</name>
<url>http://www.mycompany.com/artifactory/my-thirdparty-repo</url>
</repository>
</repositories>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
For more info on these options check maven page
activate them via command-line (-P <name>) or with triggers what ever you like. but ask yourself, whether it is the right place to locate your profile. for further info look at the documentation:
1.Maven Doc
same question?
Profile activation in Eclipse
I have been banging my head for quite a while now and I have actually learnt lots of this issues on stackoverflow an pretty sure I covered some of the common mistakes(besides,I have done several releases with bitbucket and github) that were starring at me. But still I have not been able to release anything. I feel like it's time to shout for a little help :)
I use a self hosted subversion managed by usvn and a sonatype private nexus repository. I have a multi module maven project arrange in a parent and sub module model.
Below is the snippet of the parent pom that is relevant
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<excludes>
<exclude>**/*ITest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding} </encoding>
<meminitial>128m</meminitial>
<maxmem>512m</maxmem>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<encoding>${project.build.sourceEncoding} </encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<preparationGoals>clean verify -DenableIT=true</preparationGoals>
<tagBase>https://repo.mysvnserver.com/svn/tester/tags</tagBase>
</configuration>
</plugin>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<distributionManagement>
<repository>
<id>dal</id>
<url>http://nexus.mynexusserver.com/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>
<scm>
<connection>scm:svn:https://username#repo.mysvnserver.com/svn/tester</connection>
<developerConnection>scm:svn:https://username#repo.mysvnserver.com/svn/tester</developerConnection>
<url>https://repo.mysvnserver.com/usvn/project/tester/browser</url>
<tag>tester</tag>
</scm>
Below is my settings.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<settings >
<localRepository>/home/joseph/.m2/repository</localRepository>
<servers>
<server>
<username>username</username>
<password>password</password>
<id>nexus</id>
</server>
<server>
<username>username</username>
<password>password</password>
<id>dal</id>
</server>
</servers>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<url>http://nexus.mynexusserver.com/nexus/content/repositories/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>dal</id>
<url>http://nexus.mynexusserver.com/nexus/content/repositories/releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
Since it would probably too much to put the output here , please find it on paste.ee .
I am more convince this is either configuration issue on subversion side because things looks fairly ok to me. Can anyone point out something I am missing?
Thanks
The SCM part of your POM looks not related to an actual SVN branch (or the trunk) of a project. For the SCM-linked part of the release plugin to work, I guess an SCM configuration closer to what is described in the SCM plugin should be made. A project POM SCM information should describe where to get the source code related to that exact project version, not the root project location.
I guess that without this, SVN can trigger unexpected authorization issues as you are in fact trying to access an URL where you might not have set permissions.
I am trying to compile the code of georchestra 13.09 and it was working fine for some time but now i can't compile the code
I run the next code ./mvn clean install -Dmaven.test.skip=true -Dserver=MyServer and the error is the next
The maven version is the next
Apache Maven 3.0.3 (r1075438; 2011-02-28 13:31:09-0400)
Maven home: /opt/georchestra/build-tools/maven
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-52-generic", arch: "amd64", family: "unix"
when i run ./mvn clean install -e -X -Dmaven.test.skip=true -Dserver=MyServer is the next
[INFO] ArcSDE module (dummy-api) ......................... SUCCESS [2.602s]
[INFO] GeoNetwork web client module ...................... FAILURE [22.586s]
[INFO] GeoNetwork Web module ............................. SKIPPED
[INFO] Download form webapp .............................. SKIPPED
[INFO] Analytics webapp .................................. SKIPPED
[ERROR] Failed to execute goal org.codehaus.groovy.maven:gmaven-plugin:1.0:execute (create-missingpost-treatment) on project geonetwork-client: Execution create-missingpost-treatment of goal org.codehaus.groovy.maven:gmaven-plugin:1.0:execute failed: Plugin org.codehaus.groovy.maven:gmaven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.groovy.maven:gmaven-plugin:1.0:execute (create-missingpost-treatment) on project geonetwork-client: Execution create-missingpost-treatment of goal org.codehaus.groovy.maven:gmaven-plugin:1.0:execute failed: Plugin org.codehaus.groovy.maven:gmaven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution create-missingpost-treatment of goal org.codehaus.groovy.maven:gmaven-plugin:1.0:execute failed: Plugin org.codehaus.groovy.maven:gmaven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:82)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.plugin.PluginResolutionException: Plugin org.codehaus.groovy.maven:gmaven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:215)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.createPluginRealm(DefaultMavenPluginManager.java:353)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.setupPluginRealm(DefaultMavenPluginManager.java:321)
at org.apache.maven.plugin.DefaultBuildPluginManager.getPluginRealm(DefaultBuildPluginManager.java:175)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:78)
... 20 more
Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:541)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:220)
at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:395)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:207)
... 24 more
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact org.georchestra:config:jar:13.09 in Maven2 (http://repo1.maven.org/maven2/)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:945)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:940)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.flush(WagonRepositoryConnector.java:695)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.flush(WagonRepositoryConnector.java:689)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.get(WagonRepositoryConnector.java:445)
at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:460)
... 27 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :geonetwork-client
I try fixing whit these post Maven Failed to Find dependency and none of the answers worked for me
mi pom.xml file is the next
<?xml version="1.0"?>
<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>
<groupId>org.georchestra</groupId>
<artifactId>root</artifactId>
<packaging>pom</packaging>
<version>14.06-SNAPSHOT</version>
<name>Root project of the geOrchestra project</name>
<url>http://maven.apache.org</url>
<organization>
<name>geOrchestra</name>
</organization>
<properties>
<gt.version>9.2</gt.version>
<spring.version>2.5.6.SEC01</spring.version>
<security.version>2.0.5.RELEASE</security.version>
<spring.ldap.version>1.3.0.RELEASE</spring.ldap.version>
<server>template</server>
<sub.target>dev</sub.target>
<!-- default when building without a profile specified -->
<confdir>${project.build.directory}/conf</confdir>
<encoding>UTF-8</encoding>
<georchestra.version>${project.version}</georchestra.version>
<postTreatmentScript><![CDATA[
def server=project.properties['server']
def subTarget=project.properties['subTarget']
def params = new Parameters(
project: project,
target: server,
subTarget: subTarget,
log: log,
ant: ant
)
params.init(false)
new PostTreatment().run(this, log, ant, project.basedir, params.projectDir, server, subTarget, project.build.directory)
]]></postTreatmentScript>
</properties>
<modules>
<module>geotools</module>
<module>config</module>
<module>header</module>
<module>epsg-extension</module>
<module>ogc-server-statistics</module>
<module>server-deploy-support</module>
</modules>
<build>
<plugins>
<!-- initialize git revision info -->
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.1.4</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<prefix>build</prefix>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<skipPoms>false</skipPoms>
<verbose>false</verbose>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>create-missingpost-treatment</id>
<phase>prepare-package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source><![CDATA[
def confDir = new File(project.build.directory, "conf")
def treatmentFile = new File(confDir, project.artifactId+"/PostTreatment.groovy")
if(confDir.exists() && !treatmentFile.exists()){
treatmentFile.parentFile.mkdirs()
treatmentFile << """
class PostTreatment {
def run(def project, def log, def ant, def basedirFile, def configDir,
def target, def subTarget, def targetDir) {
log.info("No post treatment required for this project")
}
}
"""
}
]]></source>
</configuration>
</execution>
<execution>
<id>post-treatment-script</id>
<phase>prepare-package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scriptpath>
<element>${project.build.directory}/conf/${project.artifactId}</element>
<element>${project.build.directory}/conf/scripts</element>
</scriptpath>
<source>${postTreatmentScript}</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
<nonFilteredFileExtension>gif</nonFilteredFileExtension>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>bmp</nonFilteredFileExtension>
<nonFilteredFileExtension>jpg</nonFilteredFileExtension>
<nonFilteredFileExtension>odg</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>unpack-config</id>
<goals>
<goal>unpack</goal>
</goals>
<phase>initialize</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.georchestra</groupId>
<artifactId>config</artifactId>
<version>${georchestra.version}</version>
<classifier>${server}</classifier>
</artifactItem>
</artifactItems>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteReleases>true</overWriteReleases>
<outputDirectory>${confdir}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<classifier>${server}</classifier>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<plugin>
<groupId>com.c2c</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>1.3</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>localhost</id>
<properties>
<server>localhost</server>
</properties>
</profile>
<!-- template profile -->
<profile>
<id>template</id>
<properties>
<server>template</server>
</properties>
</profile>
<profile>
<id>all</id>
<activation>
<file>
<!-- this is added so that all will be the default profile -->
<!-- one can build only a specific project by doing -->
<!-- -P-all,extractorapp -->
<missing>hack_to_make_all_enabled_by_default</missing>
</file>
</activation>
<modules>
<module>cas-server-webapp</module>
<module>catalogapp</module>
<module>extractorapp</module>
<module>geoserver</module>
<module>ldapadmin</module>
<module>mapfishapp</module>
<module>security-proxy</module>
<module>geonetwork</module>
<module>downloadform</module>
<module>analytics</module>
<module>header</module>
</modules>
</profile>
<profile>
<id>cas-server-webapp</id>
<modules>
<module>cas-server-webapp</module>
</modules>
</profile>
<profile>
<id>cas</id>
<modules>
<module>cas-server-webapp</module>
</modules>
</profile>
<profile>
<id>catalogapp</id>
<modules>
<module>catalogapp</module>
</modules>
</profile>
<profile>
<id>header</id>
<modules>
<module>header</module>
</modules>
</profile>
<profile>
<id>extractorapp</id>
<modules>
<module>extractorapp</module>
</modules>
</profile>
<profile>
<id>geoserver</id>
<modules>
<module>geoserver</module>
</modules>
</profile>
<profile>
<id>ldapadmin</id>
<modules>
<module>ldapadmin</module>
</modules>
</profile>
<profile>
<id>mapfishapp</id>
<modules>
<module>mapfishapp</module>
</modules>
</profile>
<profile>
<id>security-proxy</id>
<modules>
<module>security-proxy</module>
</modules>
</profile>
<profile>
<id>proxy</id>
<modules>
<module>security-proxy</module>
</modules>
</profile>
<profile>
<id>geonetwork</id>
<modules>
<module>geonetwork</module>
</modules>
</profile>
<profile>
<id>downloadform</id>
<modules>
<module>downloadform</module>
</modules>
</profile>
<profile>
<id>analytics</id>
<modules>
<module>analytics</module>
</modules>
</profile>
</profiles>
<repositories>
<repository>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<id>mapfish</id>
<url>http://dev.mapfish.org/maven/repository</url>
</repository>
<!-- geotools -->
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>osgeo</id>
<name>Open Source Geospatial Foundation Repository</name>
<url>http://download.osgeo.org/webdav/geotools/</url>
</repository>
<repository>
<id>opengeo</id>
<name>OpenGeo Maven Repository</name>
<url>http://repo.opengeo.org/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>jetty-repository</id>
<name>Jetty Maven2 Repository</name>
<url>http://oss.sonatype.org/content/groups/jetty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>codehaus-snapshot-plugins</id>
<name>codehaus-shapshot-plugins</name>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>opengeo</id>
<name>OpenGeo Maven Repository</name>
<url>http://repo.opengeo.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<id>mapfish</id>
<url>http://dev.mapfish.org/maven/repository</url>
</pluginRepository>
</pluginRepositories>
</project>
Thanks For the Help
That version of GMaven is truely ancient. I'd try with a newer version or GMavenPlus.
I am using jenkins for continous integration build process through maven and using sonar for code review as well. jenkins job is working fine for creating build but when sonar analysis starts, it throw below error..
[ERROR] [19:19:47.494] Squid Error occurs when analysing :D:\Jenkins_New\jobs\Sample_Maven_Project\workspace\src\main\java\software\bean\UserBean.java
org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration software.bean
"
I'm stucked in this issue.
below is my project pom.xml file
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nuc</groupId>
<artifactId>nuc</artifactId>
<version>0.1</version>
<packaging>war</packaging>
<name>nuc</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>neutrino-central-repository-Nexus</id>
<name>Neutrino Central Repository</name>
<url>http://10.1.50.56:9081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>neutrino-central-plugin-repository-Nexus</id>
<url>http://10.1.50.56:9081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>WebContent</directory>
<targetPath>/${project.build.directory}/${project.build.finalName}</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/META-INF</directory>
<targetPath>/${project.build.directory}/META-INF</targetPath>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
<webXml>WebContent/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
This error means that the ".java" source files are not located in a correct folder.
If your project is a Maven project, chances are that the ".java" source files are located in <project>/src/main/java - like the convention suggests it.
However, from what I see in your POM, you have set the source folder to be "src" instead of "src/main/java". This is why you get this error.
i have a java project with a automatically generated ant files. so i'm forced to use ant to build the project. I needed to add some new libraries and i used the below maven pom file. i then use an ant task to retrieve the pom dependencies and copy them into a lib folder. however the following ant task misses the profile dependencies in the pom.
what i want to do is an ant task so that based on current os it will include the corresponding xurlrunner jar for the os. this is done by maven in the pom but how can i do it with ant ?
---ant target task----
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant"
classpathref="maven-ant-tasks.classpath"/>
<target name="retrieve-dependencies">
<artifact:dependencies filesetId="dependency.fileset"
sourcesFilesetId="profiles.dependency.fileset"
versionsId="dependency.versions">
<pom file="${basedir}/nbproject/pom.xml"/>
</artifact:dependencies>
<delete dir="${lib.dir}/browser"/>
<copy todir="${lib.dir}/browser">
<fileset refid="dependency.fileset"/>
<mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
from="${dependency.versions}" to="flatten"/>
</copy>
</target>
---pom.xml-------
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.drOffice.browser</groupId>
<artifactId>embedded-browser</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerVersion>1.6</compilerVersion>
<encoding>UTF-8</encoding>
<source>1.6</source>
<target>1.6</target>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugins>
</build>
<repositories>
<repository>
<id>atomation-repository</id>
<name>atomation maven repository</name>
<url>http://atomation-repository.googlecode.com/svn/trunk</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>ru.atomation.jbrowser</groupId>
<artifactId>jbrowser</artifactId>
<version>1.9</version>
<scope>compile</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>generic</id>
<activation>
<activeByDefault></activeByDefault>
</activation>
</profile>
<profile>
<id>linux</id>
<dependencies>
<dependency>
<groupId>ru.atomation.native</groupId>
<artifactId>xulrunner-linux</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>solaris</id>
<dependencies>
<dependency>
<groupId>ru.atomation.native</groupId>
<artifactId>xulrunner-solaris</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>macosx</id>
<dependencies>
<dependency>
<groupId>ru.atomation.native</groupId>
<artifactId>xulrunner-macosx</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>windows</id>
<dependencies>
<dependency>
<groupId>ru.atomation.native</groupId>
<artifactId>xulrunner-windows</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
If you only use Ant to copy the dependencies, I assume it would be by far simpler to use maven to copy these dependencies.
If you really want to use Ant, you can simply define the property in your pom (in the profile), and use it in the Ant script.
Something like
<profile>
<id>linux</id>
<properties>
<custom.property>linux</custom.property>
<properties>
.....