我的团队正在使用功能分支来实现新功能,并不断将快照构建部署到远程仓库中供我们的用户使用.因此,"部署"实际上只意味着"分发到远程Maven存储库".我们目前只为主分支而不是功能分支运行持续集成构建,原因如下:我们使用Maven构建我们的项目并在JAR旁边分发JavaDoc和源代码.
我的计划现在是为每个功能分支构建添加一个分类器,并期望在创建和部署这样的工件时使用一个分类器:
文物:foo-${version}
.jar,foo-${version}-sources
.jar,foo-${version}-javadoc.jar
分支:特征-X
foo-${version}-feature.jar
,foo-${version}-sources-feature.jar
,foo-${version}-javadoc-feature.jar
我并不真正关心工件的确切命名,我只需要为功能分支单独的main,source和JavaDoc工件.事实证明,JavaDoc插件和源插件都没有考虑配置的分类器,因此有效地覆盖了为我的主构建创建的工件.
我真的不想改变artifactId,虽然这可能会解决问题.你如何处理功能分支和与Maven的持续集成?
continuous-integration feature-branch maven maven-javadoc-plugin maven-source-plugin
我有以下插件用于创建-sources.jar
和部署特定命名jar到存储库.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<configuration>
<version>${project.version}-r${buildNumber}</version>
<classifier>${env}</classifier>
<packaging>jar</packaging>
<file>${project.build.directory}/${project.build.finalName}.jar</file>
<url>${artifactory.url}/libs-release-local</url>
<repositoryId>artifactory.digiterre.com</repositoryId>
<pomFile>${project.basedir}/pom.xml</pomFile>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我希望同时部署它*-sources.jar
.我尝试添加第二个文件条目甚至第二个部署插件.我似乎部署了一个或其他文件.
是否可以在一次通过中使用deploy:deploy-file
或者我是否必须设置第二个团队城市构建才能部署源?
我正在尝试使用maven-source-plugin为我的kotlin项目创建一个source.jar,但似乎maven-source-plugin对kotlin项目效果不佳.
当我运行"mvn source:jar"时,输出消息总是说:
[INFO] No sources in project. Archive not created.
Run Code Online (Sandbox Code Playgroud)
这是我项目的pom文件中的maven-source-plugin配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<attach>true</attach>
<includes>
<!-- i am trying to specify the include dir manually, but not work -->
<include>${project.basedir}/src/main/kotlin/*</include>
</includes>
<forceCreation>true</forceCreation>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何使用maven-source-plugin附加kotlin源文件?
谢谢~~
我正在尝试使用gitflow-helper-maven-plugin
我的maven构建的扩展.
因此,我想配置我的项目,以便在构建发布版本时运行一些额外的步骤,并在编译SNAPSHOT版本时跳过它们,但是如果${project.version}
包含,我找不到启用配置文件的方法-SNAPSHOT
.
有什么建议吗?
java maven maven-javadoc-plugin maven-source-plugin maven-profiles
我使用maven发布插件来生成我的项目的发布.我不想在构建时生成Javadoc.另一方面,当我调用release:perform时,我想如果maven会生成sources.jar和javadoc.jar并将其部署到maven发布存储库.仅仅因为我很好奇如何禁用部署source.jar,因为它看起来默认是部署的.
maven-2 maven maven-release-plugin maven-javadoc-plugin maven-source-plugin
我正在尝试使用分类器部署Maven工件.由于我需要源和JAR(我从GWT使用它),我想得到artifact-version-classifier.jar
和artifact-version-classifier-sources.jar
.但是,它与编译的JAR一起工作正常,但是与源代码失败(输出源JAR的名称错误).
这是我到目前为止的配置:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classifier>prod</classifier>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>${project.build.finalName}-prod</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<classifier>prod</classifier>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出mvn deploy
:
Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-prod.jar
237K uploaded (afip-connector-1.0-SNAPSHOT-prod.jar)
Run Code Online (Sandbox Code Playgroud)
但是这个名字有错:
Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-sources.jar
228K uploaded (afip-connector-1.0-SNAPSHOT-sources.jar)
Run Code Online (Sandbox Code Playgroud) 我在项目对象模型中包含以下代码段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
根据maven.apache.org,该插件将jar目标附加到包阶段.但是,执行"mvn clean; mvn package"不会在目标目录中生成project-sources.jar.
编辑:我不明白网站的评论,我引用:"[来源:jar目标]默认绑定到生命周期阶段:包." 我预计,当我包含如上所示的插件部分时,maven已经将源:jar目标绑定到包阶段.我错了吗?评论意味着什么?
马提亚.
我使用Eclipse Maven插件从SourceForge的SVN源代码控件中检出了一个开源项目.签出后,我在pom.xml文件中收到此错误:
从存储库[local(C:\ Documents and Settings\thomas.owens\.m2\repository),central(http:// repo1)解析插件'org.apache.maven.plugins:maven-source-plugin'的版本时出错.maven.org/maven2)]:在任何插件存储库中找不到插件
我对Maven很新,但是我遵循了Apache Maven和Eclipse插件的安装说明.在我可以清楚地看到位于C:\Documents and Settings\thomas.owens\.m2\repository\org\apache\maven\plugins\maven-source-plugin
包含单个resolver-status.properties
文件的目录时,在Maven或我的本地存储库的中央插件库中找不到此插件似乎很奇怪.
有关为什么可能找不到此插件以及我可以在哪里找到它的任何想法?