发布本地项目和源码到 maven 私服中

有时候我们会使用第三方包到我们的项目中,但是想看源码的时候,需要下载源码查看,十分麻烦。

不如把源码上传到maven私服中,这样查看源码的时候就可以直接从mvaen nexus下载直接查看了。

方法如下:

1、在setting.xml文件中增加用户名和密码配置

特别注意这里的ID。

<servers>
    <!-- 用于发布正式版本 -->
    <server>
        <id>maven-repository-releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <!-- 用于发布快照版本 -->
    <server>
        <id>maven-repository-snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

2、在项目的pom.xml中增加以下内容

<build>
    <plugins>
        <!-- 要将源码放上去,需要加入这个插件 -->
        <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <attach>true</attach>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<distributionManagement>
    <repository>
        <!-- 这里的ID要和setting的id一致 -->
        <id>maven-repository-releases</id>
        <url>http://ip:8081/nexus/content/repositories/thirdparty/</url>
    </repository>
    <!--这是打成快照版本的配置,如果不用这个snapshotRepository标签,打包失败,会报权限问题 -->
    <snapshotRepository>
        <id>maven-repository-snapshots</id>
        <url>http://ip:8081/nexus/content/repositories/thirdparty</url>
    </snapshotRepository>
</distributionManagement>

3.执行Maven build的deploy命令

eclipse-run-mvn-config.png

正常情况下,如果是发布新版本的话,一切是ok的。

4.如果是替换老版本,可能会出现如下错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project YourProject: Failed to deploy artifacts: Could not transfer artifact YourProject:jar:3.0.1 from/to maven-repository-releases (http://ip:8081/nexus/content/repositories/thirdparty/): Failed to transfer file: http://192.168.16.204:8081/nexus/content/repositories/thirdparty/../../YourProject.jar. Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[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/MojoExecutionException

这是 maven deploy 已存在的包的时候出现 400 错误,原因是 release 默认库是不允许重复部署的。

解决: 修改maven 私服配置.

修改图中配置就可以重复部署了:Deployment Policy:Allow Redeploy

mvn-repo-allow-redeploy.png

然后,重新 deploy,既可以将源码和 jar 包一并上传到 maven 私服了。

5.其他可能遇到的问题

用户权限问题,可能导致发布失败。

如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论