![](/img/trans.png)
[英]Can't prevent Maven deploy plugin from publishing artefact to nexus without version timestamp suffix
[英]Typical Maven Deploy Plugin for Nexus from Eclipse
我想使用部署插件直接从eclipse上将一个项目放在sonatype(oss.sonatype.or)的nexus存储库上。 我很近,但是没有雪茄。 我可以构建-source.jar和-javadoc.jar文件,并使用gpg-plugin对所有内容进行签名,但是在部署时会出现一些错误。 谁能为此共享典型的pom.xml? 谢谢。
更新:每个请求:有关设置Eclipse以部署到Maven中央存储库(repo1.maven.org)的详细说明
从Eclipse Java项目开始。 使用m2e将其转换为Maven项目。 将有用的库部署到中央存储库的要求是
1:好的代码。 只是使用常识。 不要在那儿放垃圾。 测试一下。
2: Javadocs。 注释所有的类和方法。 创建一个/ src / main / javadoc目录。 使用javadoc插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
3:源代码:使用源代码插件:
<plugin>
<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>
4:获取gpg id和密钥,并按照Sonatype说明进行设置,以进行“注册”,以使用Maven进行设置:请参阅https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures + With + Maven添加插件…
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
和.m2 / settings.xml
<profiles>
<profile>
<id>gpg</id>
<properties>
<gpg.passphrase>*******</gpg.passphrase>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>gpg</activeProfile>
</activeProfiles>
5:添加Maven部署插件。 这将停止常规部署阶段:
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
6:添加sonatype插件:注意:一旦被授予对存储库的访问权限,便可以获取stagingProfileId。
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.4.8</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
<configuration>
<serverId>sonatype-nexus-staging</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<stagingProfileId>***********</stagingProfileId>
</configuration>
</plugin>
7:仔细阅读Sonatype Maven存储库使用指南:做POM所需的其他事情,例如许可证部分,scm部分,开发人员部分和父部分。 https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide它将告诉您如何注册和打开票证。 打开票证后,即可访问https://oss.sonatype.org上的Sonatype Nexus网站。 在这里可以找到上面所需的stagingProfileId。 将服务器信息添加到您的.m2 / settings.xml
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>yourusername</username>
<password>yourpassword</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>yourusername</username>
<password>yourpassword</password>
</server>
</servers>
8:最后,从eclipse创建一个maven运行时配置:右键单击项目,选择Run As-> Run Configurations。 创建一个新的Maven Build,将基本目录设置为您的项目目录,并将目标设置为“干净部署”。应用并运行,但是首先运行Mavin-> Install在本地创建javadocs和源文件,以便您可以检查错误或警告消息。
有关登台的文档
这是我的工作配置的摘要(不带标签)
<?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>com.company.sample</groupId>
<artifactId>sample-app</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<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-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>nexus</id>
<url>https://repository.company.com/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<url>https://repository.company.com/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
<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">
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>secret_password</password>
</server>
</servers>
</settings>
mvn deploy
要附加source:jar和javadoc:jar,请使用Cookbook中的配置:如何附加源和javadoc构件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.