Maven 3:使用SCP部署工件
据我所知,使用maven部署第三方二进制工件是这样做的:Maven 3:使用SCP部署工件,maven,scp,Maven,Scp,据我所知,使用maven部署第三方二进制工件是这样做的: mvn deploy:deploy-file -DgroupId=<group-id> \ -DartifactId=<artifact-id> \ -Dversion=<version> \ -Dpackaging=<type-of-packaging> \ -Dfile=<path-to-file> \ -DrepositoryId=<id-to-m
mvn deploy:deploy-file -DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<type-of-packaging> \
-Dfile=<path-to-file> \
-DrepositoryId=<id-to-map-on-server-section-of-settings.xml> \
-Durl=<url-of-the-repository-to-deploy>
使用maven 3,此部署命令失败并显示错误消息
我使用的解决方法是将两个jar复制到我的$M2\u HOME/lib
目录中:wag-ssh-common-2.2.jar
和wag-ssh-external1.0.jar
因此我的问题是:为什么Maven不能自己找回合适的货车
(如果可能的话,如何让它做到这一点呢?货车是Maven的延伸。您可以按如下方式添加它们:
<project>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0</version>
</extension>
</extensions>
</build>
</project>
org.apache.maven.wagen
第页。作为一个简单明了的回答:添加第三方要求您具备:
- Maven存储库(像Nexus或带有GUI的Artifactory这样的应用程序)
- 或pom.xml(在命令行中)
进一步考虑事项
我假设您想要使用第三方库,而不仅仅是发布您自己的库
如果您想使用第三方库,您真的应该寻找托管它的现有存储库。我敢肯定你已经搜索过了,但这是更好的方法。如果找到一个,只需将其添加到maven repo缓存中即可
下一步,如果你找不到,你可以把它添加到你自己的回购协议中,假设你有。我真的不知道你是否熟悉这一点,这可能听起来很明显,所以请原谅我。但是存储库不仅仅是一个文件服务器。Carlspring kinldy谈到Nexus是为了举个例子。还有人工制品,还有许多其他的。它们是真正的应用服务器。所以,你必须有你自己的。
它们具有允许您添加工件的接口,提供有关工件的一些信息(至少是组、id、版本)
最后,Maven处理依赖范式。这不是一个正式的问题,只是一个考虑因素:
- 谁开发的李>
- 它取决于什么(其他LIB)
- 是谁提供的
- 它可信吗
所有这些信息都应该放在pom.xml中,它们实际上应该由作者放置(见1),或者至少在Maven中使用时提供(见2)。在所有情况下,它们都来自pom.xml。。。是否自动生成。。。因此需要一个pom.xml:)
事实上,发布或使用库会导致同样的问题:您必须提供有关您开发的内容的信息,以便以更自动化和更可靠的方式使用。
有时候很难看,但这是更好的方法
再一次,如果这听起来很明显,请原谅我。但是根据经验,当你不能用Maven做一些事情时,通常是因为这不是一个好的方法,甚至你的过程比驱动每个人的“最伟大的开发过程”都要小:)好的,但是对于快速的第三方二进制部署,我希望我不需要创建POM文件。可以将其添加到全局设置文件或类似文件中吗?如果您使用Nexus,可以通过web应用程序上载文件。我同意Jean-Rémy的观点,还有其他Maven存储库,如Archiva和Artifactory。我只是举了一个这样一种关系的例子,我改写了我写的内容。我的本意不是减少你说的话我明白你的意思:)
<project>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>1.0</version>
</extension>
</extensions>
</build>
</project>