繁体   English   中英

Eclipse的典型Nexus Maven部署插件

[英]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和源文件,以便您可以检查错误或警告消息。

有关登台的文档

这是我的工作配置的摘要(不带标签)

的pom.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>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>

〜/ .m2目录/ settings.xml中

<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>

部署到Maven存储库的命令

mvn deploy

要附加source:jar和javadoc:jar,请使用Cookbook中的配置:如何附加源和javadoc构件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM