问题标签 [maven-deploy-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何将 Maven 嵌入到我的应用程序中?
我想在我的 Java 应用程序中嵌入 Maven 或执行所有魔法的库。
关键点:
它们是我要执行的两项任务:
1/ 在本地存储库中
发布 jar 2/ 在私有企业存储库 (Nexus) 中发布 jar所有必需的 jar 必须位于公共 Maven 存储库中
jar 应该与 Maven 版本无关(即不特定于 Maven 2 或 3)
如果可以,请在您的回复中提供一个片段。
maven - 将 maven 工件发布到文件上传 servlet
我们有一个 servlet,我们将一个 zip 文件发布到该 servlet。我想自动构建 zip 并使用 maven 将其发布到 servlet。有没有办法用 maven 插件来做到这一点,还是我应该只使用外部工具或 ant 任务?
nexus - 从 Maven 命令行将 SNAPSHOT 工件和源部署到 Nexus
我正在尝试使用 maven 命令行部署一个 EXE 文件并将其压缩源文件到 Sonatype Nexus。文件必须部署为 SNAPSHOT。
所以,我有2个文件:
使用 maven 2.2.1 和此处描述的命令:
我可以部署 EXE,但无法部署源代码,因为 maven 2.2.1 使用的是 deploy-plugin v2.5,并且此命令在 v2.7 之前不支持。我不允许使用更新版本的 maven,所以我尝试了不同的方法。
使用这两个后续命令,我可以部署这两个工件,但是无法从 nexus 下载源代码。
部署后,我搜索 testXYZ 并单击工件源下载链接。Nexus 说:
“在路径“com.xyz:testXYZ:1.1.116-SNAPSHOT:c=sources:e=jar”上找不到项目!”
问题是 Maven 上传这些工件的方式:
通知 111705-1 和 111705-2。如果我们希望 Nexus 可以生成正确的链接,最后一个数字必须相同。
此处描述了此方法:
使用 maven 的 deploy:deploy-file 插件部署工件、其源代码和 javadoc
和这里:
http://maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html
它适用于固定版本(例如 1.1.116),但不适用于 SNAPSHOT。
如果使用固定版本,可以将 Exe 和 Zip 文件部署到 Nexus(如 jar 文件)。
所以,问题是: 有没有办法从命令行部署工件和源快照到 Sonatype Nexus,并确保可以通过单击源和工件链接下载这些文件?
注意:如果我禁用时间戳后缀,这可以工作,但我不想这样做。
谢谢,
马里安
java - 如何重构 Maven 多模块项目?
我为这篇文章的长度表示歉意,但我在不展示图片的情况下无法使其更简洁。我最近接手了一个 maven 3.0 多模块项目的 build-master 工作。问题是项目/模块的结构是一场灾难。从当前存储在源代码控制中的方式(我们使用 RTC)到模块的 pom 结构,我都在竭尽全力尝试每次都完成一个完整的构建周期。
作为项目层次结构,所有模块都“扁平”存储;即:一切都在同一水平。我有一个父 pom,所有模块都依赖于父级。但是,父级与我的所有其他模块处于同一级别。
前任:
父 pom 定义了构建项目所需的所有模块,以及在不同子模块中使用的工件版本号的一堆属性:
反过来,每个模块的 pom 通过 pom 的工件编号依赖于父 pom:
更令人困惑的是,实际的工件名称可能(取决于模块)与模块路径匹配,也可能不匹配。例如, module1 可能位于 path 中c:\dev\MyEarProject\module1
,但具有 artifact name hibernate-module
。但是,由于它在 RTC 中的存储方式,在module1
签出时会调用该目录。
当然,构建一切的最简单方法是进入c:\dev\MyEarProject\parent-pom\
并运行mvn clean deploy
. 这在 SNAPSHOT 模式下工作正常,因为 SNAPSHOT 存储库允许同一工件版本的多个部署。但是在发布模式下,这会失败。
这种结构给我带来了两个问题。
- 每次我需要对父级中的属性进行版本更改时,我都必须更新父级 pom 版本号,以及所有子模块父级 pom 的版本,以及所有子模块本身的版本(因为父级更改了)。
- 每当我需要部署发布周期时,如果其中一个模块自上一个周期以来没有更改并且因此无法重新部署到同一个 repo(repo 不允许覆盖现有工件),mvn 将引发错误
所以我正在寻找重组这个项目以避免这些问题的最佳方法。对于父 pom,我知道我可以使用相对路径来指向父级。但是,鉴于模块的“扁平”结构,这是一种推荐的方法吗(即:父 pom 相对路径将是 ../parent-pom/pom.xml - 对我来说似乎有点奇怪)?此外,鉴于父级的版本控制独立于模块,使用相对路径不仅会导致额外的混乱(即:无法知道父级 pom 的哪个版本与哪个版本相关联子模块)。
其次,如何在不遇到部署错误的情况下构建整个耳朵?由于工件已经存在于 repo 中,我不需要重建和重新部署它。我尝试使用 --projects 但由于涉及的模块数量众多,管理起来非常困难。
java - 在 Maven 部署过程中添加一个额外的文件夹
我目前在我的项目中有这个文件夹结构
使用mvn deploy后,目标文件夹包含一个 jar,其中包含资源文件夹。但我还希望将 webapp 文件夹与 jar 放在同一文件夹中(不在 jar 内!)。有人可以告诉我该怎么做:)吗?
maven - 为什么 Maven 错误地将快照上传到发布存储库?
我正在尝试使用 maven-deploy-plugin 将版本和快照上传到 Nexus 存储库。但是我遇到了这个错误
这是我在 pom.xml 中的配置:
从我的 settings.xml 文件中:
我确信这个配置在某个时候有效,但现在它吐出了一个错误。不知道出了什么问题。
并且 nexus 日志告诉我它正在尝试将快照上传到发布存储库
maven - Maven 站点:在“部署”目标期间(在测试配置文件中)部署(使用不同的 url)?
如何让 Maven 在运行部署时执行站点:站点和站点:部署?
我最好制作自己的插件(maven-release-plugin 的修改版本)还是在 Maven 中有一种简单的方法(在配置文件中配置插件)?
谢谢!
编辑澄清:我基本上希望为快照发布完成一个站点部署(到一个特殊的 url)。即javadoc。谢谢!
svn - 无法 mvn release:prepare,服务器证书验证失败
我正在尝试mvn release:prepare release:perform
在一个项目上运行一个项目,该项目以前在许多场合都没有问题,但是我看到以下输出:
我已按照此处~/.scm/svn-settings.xml
的建议包含以下内容
这包括--trust-server-cert
svn 标签的命令行选项。
此行为发生在运行 maven 3.0.4 的 Mac 和 Windows 机器上。
关于如何解决这个问题的任何指示?是服务器证书需要重新颁发吗?
谢谢
maven - 知道为什么 maven-deploy-plugin 不提供登录/密码命令行选项吗?(还是我瞎了?)
我正在尝试创建一个脚本来“mavenize”一组库。为了使它们直接从工件存储库中可用,我希望脚本为我的每个库运行部署命令。但我似乎找不到登录+密码命令行选项;settings.xml 文件是指定它们的唯一选项吗?