相关疑难解决方法(0)

使用依赖项和测试在Maven中生成jar文件

我在pom.xml中使用此代码来创建jar文件.

   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <excludes>
                <exclude>**/log4j.properties</exclude>
            </excludes>
            <archive>
                <manifest>
                    <mainClass>test.LeanFTest</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

部署失败:未在POM内部分发中指定存储库元素

更新:

我在pom.xml中添加了另一个插件.

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>test.LeanFTest</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

它生成一个jar文件,但似乎没有依赖项.

线程"main"中的异常java.lang.NoClassDefFoundError:org/apache/log4j/Logger

项目结构:

C:.
????.idea
?   ????libraries
????META-INF
????out
?   ????artifacts
?       ????Test_LeanFT_jar
????resources
?   ????leanftjar
?   ????META-INF
????RunResults
?   ????Resources
?       ????Snapshots
?       ????User
????src
?   ????main
?   ?   ????java
?   ?   ?   ????com
?   ?   ?   ?   ????myproj
?   ?   ?   ????jar
?   ?   ?   ? …
Run Code Online (Sandbox Code Playgroud)

java jar pom.xml maven

10
推荐指数
1
解决办法
4993
查看次数

altDeploymentRepository和altReleaseDeploymentRepository之间的区别

我使用swagger在我的项目中生成Web服务客户端.生成的代码生成一个可以用作Maven lib的库.我已经成功将发布版本部署到我的私有sonatype-nexus中.

我想知道altDeploymentRepository和之间的区别是什么altReleaseDeploymentRepositorymvn deploy如果设置了两个参数,如何选择使用哪个存储库?

正如apache-maven部署文档所说:

altDeploymentRepository:指定应该部署项目工件的备用存储库(除了指定的那些).格式:id :: layout :: url

altReleaseDeploymentRepository:项目具有最终版本时使用的备用存储库.

altSnapshotDeploymentRepository:项目具有快照版本时使用的备用存储库.

到底是什么

当项目有最终版本时.

意思?

java maven maven-deploy-plugin

7
推荐指数
1
解决办法
4159
查看次数

跳过一个模块的 maven 部署

我有一个多模块 Maven 项目。父 pom 看起来像这样:

<project>
    ...
    <packaging>pom</packaging>   
    <modules>
        <module>common</module>
        <module>a</module>
        <module>b</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

common 构建一个 jar,它作为依赖项添加到其他模块中,如下所示:

<dependency>
    <groupId>my.project</groupId>
    <artifactId>common</artifactId>
    <version>${module.common.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

ModulesabSpring Boot 项目具有spotify docker 插件

我需要能够运行mvn deploy才能让 spotify 插件推送 docker 镜像。

mvn install工作正常,它构建了 docker 图像。但是为了推送它们,当我运行时mvn deploy,它会为common模块抛出错误:

[错误] 无法在项目 common 上执行目标 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy):部署失败:在 distributionManagement 元素内的 POM 中或在 - 中未指定存储库元素DaltDeploymentRepository=id::layout::url 参数

搜索此错误,此答案建议在该distributionManagement部分中添加存储库 url 。但我不想部署common. 我只想构建它,因此它作为其他模块中的依赖项被注入并部署这些其他模块。我怎样才能做到这一点?

我尝试仅部署ab使用此命令,但它给出了相同的错误common …

java maven docker spring-boot spotify-docker-client

7
推荐指数
1
解决办法
6800
查看次数

Maven插件的部署问题

我尝试运行时收到此错误 mvn clean deploy -P PROD

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project mysticpaste: Deployment failed: repository element was
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project mysticp
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:203)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)
        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:314)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:445)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:168)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:132)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        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.MojoExecutionException: Deployment failed: repository element was …
Run Code Online (Sandbox Code Playgroud)

java maven

5
推荐指数
1
解决办法
5万
查看次数

maven-deploy-plugin 不知道我将它声明为构建插件的 pom 吗?

我有一个 Maven 项目。在 pom 中,我声明了组 ID、工件 ID、版本。

我将 maven-deploy-plugin 声明为构建插件,目标是 deploy:deploy-file。

然后我以相同的目标从 eclipse 启动了 maven,wuth -Durl 声明为 jvm arg。

Maven 构建失败,说我没有提供 groupid、artifactid、package、file not defined。

为什么它不从 pom 中获取这些值?

一定有办法告诉插件使用 pom 值,对吗?因为 maven 人肯定相信 DIE-DRY - 重复是邪恶的,不要重复自己吗?否则,我可以创建一个与其 pom 相矛盾的人工制品分布?

  1. 为什么,插件不知道我希望部署项目,包括源代码而不仅仅是单个 jar 或 pom?

  2. 为什么,插件不知道它应该只查看 pom artifactid 声明来获取 groupid 和 artifactid。

咆哮:

  • 如果缺少这些功能,尽管我强烈希望它们不会丢失 - 为什么插件开发人员不觉得这些是重要的功能?

java maven-plugin maven

2
推荐指数
1
解决办法
2万
查看次数