日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven将第三方依赖_如何将商业第三方文物整合到您的Maven版本中

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven将第三方依赖_如何将商业第三方文物整合到您的Maven版本中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

maven將第三方依賴

根據ZeroTurnaround的RebelLabs最近進行的一項調查 ,Maven仍然是領先的Java構建平臺。 根據RebelLabs,當前的市場份額分布是:

  • Maven的64%
  • 螞蟻+常春藤與16.5%
  • Gradle與11%

但是,與此同時,Maven經常因其晦澀和干擾而受到批評。 與亞軍Ant和Gradle相比,Maven在解釋和自定義適應構建模型方面僅具有很小的靈活性。 就像Data Stax的Tim Berglund所說的那樣:

但是,讓我們開個玩笑,看看一個現實世界中的問題:

整合第三方商業物品

Maven Central并非免費提供您要依賴的所有第三方人工制品。 商業JDBC驅動程序或商業jOOQ版本就是這樣的例子。 基本上有三種方法可以將這些偽像集成到您的構建中:

快速而骯臟

通常,您只需要對小型測試項目或演示具有商業依賴性。 您想確保它在運行時可以正常運行,而不必依賴于本地存儲庫設置或網絡連接。 這是<scope>system</scope>的好用例:

例如:jOOQ

<dependency><groupId>org.jooq</groupId><artifactId>jooq</artifactId><version>${jooq.version}</version><scope>system</scope><systemPath>${basedir}/lib/jooq-${jooq.version}.jar</systemPath> </dependency>

例如:Microsoft SQL JDBC

<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>3.0</version><scope>system</scope><systemPath>${basedir}/lib/sqljdbc4.jar</systemPath><!-- Notice that we can still put "optional"on commercial JDBC driver dependencies --><optional>true</optional> </dependency>

這種方法的優點

當您要擁有一個本地的,自包含的模塊,該模塊可以保證在從源代碼管理中檢出后立即運行,而無需進行額外的配置和設置,這確實是一個非常簡單的解決方案。 當然,不要忘記先將庫簽入源代碼管理。

這種方法的缺點

系統依賴項永遠不會傳遞。 如果您的模塊以這種方式依賴jOOQ,則模塊的依賴項將看不到jOOQ API。

有關系統依賴性的詳細信息,請參見Maven文檔 。 從文檔中引用:

與作用域系統的依賴關系始終可用,不會在存儲庫中查找。 它們通常用于告知Maven JDK或VM提供的依賴項。 因此,系統依賴關系對于解決對JDK現在提供的工件的依賴關系特別有用,但以前可以單獨下載獲得。 典型示例是JDBC標準擴展或Java身份驗證和授權服務(JAAS)。

更加堅固

一種看起來更健壯的方法是從版本控制系統中檢查依賴性,然后“手動”將其導入本地存儲庫。 這將使它們可用于您自己的本地版本。 以下Shell腳本顯示了如何將jOOQ工件導入本地存儲庫中

Windows批處理

@echo off set VERSION=3.4.4if exist jOOQ-javadoc\jooq-%VERSION%-javadoc.jar (set JAVADOC_JOOQ=-Djavadoc=jOOQ-javadoc\jooq-%VERSION%-javadoc.jarset JAVADOC_JOOQ_META=-Djavadoc=jOOQ-javadoc\jooq-meta-%VERSION%-javadoc.jarset JAVADOC_JOOQ_CODEGEN=-Djavadoc=jOOQ-javadoc\jooq-codegen-%VERSION%-javadoc.jarset JAVADOC_JOOQ_CODEGEN_MAVEN=-Djavadoc=jOOQ-javadoc\jooq-codegen-maven-%VERSION%-javadoc.jarset JAVADOC_JOOQ_SCALA=-Djavadoc=jOOQ-javadoc\jooq-scala-%VERSION%-javadoc.jar )if exist jOOQ-src\jooq-%VERSION%-sources.jar (set SOURCES_JOOQ=-Dsources=jOOQ-src\jooq-%VERSION%-sources.jarset SOURCES_JOOQ_META=-Dsources=jOOQ-src\jooq-meta-%VERSION%-sources.jarset SOURCES_JOOQ_CODEGEN=-Dsources=jOOQ-src\jooq-codegen-%VERSION%-sources.jarset SOURCES_JOOQ_CODEGEN_MAVEN=-Dsources=jOOQ-src\jooq-codegen-maven-%VERSION%-sources.jarset SOURCES_JOOQ_SCALA=-Dsources=jOOQ-src\jooq-scala-%VERSION%-sources.jar )call mvn install:install-file -Dfile=jOOQ-pom\pom.xml -DgroupId=org.jooq -DartifactId=jooq-parent -Dversion=%VERSION% -Dpackaging=pom call mvn install:install-file -Dfile=jOOQ-lib\jooq-%VERSION%.jar -DgroupId=org.jooq -DartifactId=jooq -Dversion=%VERSION% -Dpackaging=jar %JAVADOC_JOOQ% %SOURCES_JOOQ% -DpomFile=jOOQ-pom\jooq\pom.xml call mvn install:install-file -Dfile=jOOQ-lib\jooq-meta-%VERSION%.jar -DgroupId=org.jooq -DartifactId=jooq-meta -Dversion=%VERSION% -Dpackaging=jar %JAVADOC_JOOQ_META% %SOURCES_JOOQ_META% -DpomFile=jOOQ-pom\jooq-meta\pom.xml call mvn install:install-file -Dfile=jOOQ-lib\jooq-codegen-%VERSION%.jar -DgroupId=org.jooq -DartifactId=jooq-codegen -Dversion=%VERSION% -Dpackaging=jar %JAVADOC_JOOQ_CODEGEN% %SOURCES_JOOQ_CODEGEN% -DpomFile=jOOQ-pom\jooq-codegen\pom.xml call mvn install:install-file -Dfile=jOOQ-lib\jooq-codegen-maven-%VERSION%.jar -DgroupId=org.jooq -DartifactId=jooq-codegen-maven -Dversion=%VERSION% -Dpackaging=jar %JAVADOC_JOOQ_CODEGEN_MAVEN% %SOURCES_JOOQ_CODEGEN_META% -DpomFile=jOOQ-pom\jooq-codegen-maven\pom.xml call mvn install:install-file -Dfile=jOOQ-lib\jooq-scala-%VERSION%.jar -DgroupId=org.jooq -DartifactId=jooq-scala -Dversion=%VERSION% -Dpackaging=jar %JAVADOC_JOOQ_SCALA% %SOURCES_JOOQ_SCALA% -DpomFile=jOOQ-pom\jooq-scala\pom.xml

Linux Shell

#!/bin/sh VERSION=3.4.4if [ -f jOOQ-javadoc/jooq-$VERSION-javadoc.jar ]; thenJAVADOC_JOOQ=-Djavadoc=jOOQ-javadoc/jooq-$VERSION-javadoc.jarJAVADOC_JOOQ_META=-Djavadoc=jOOQ-javadoc/jooq-meta-$VERSION-javadoc.jarJAVADOC_JOOQ_CODEGEN=-Djavadoc=jOOQ-javadoc/jooq-codegen-$VERSION-javadoc.jarJAVADOC_JOOQ_CODEGEN_MAVEN=-Djavadoc=jOOQ-javadoc/jooq-codegen-maven-$VERSION-javadoc.jarJAVADOC_JOOQ_SCALA=-Djavadoc=jOOQ-javadoc/jooq-scala-$VERSION-javadoc.jar fiif [ -f jOOQ-src/jooq-$VERSION-sources.jar ]; thenSOURCES_JOOQ=-Dsources=jOOQ-src/jooq-$VERSION-sources.jarSOURCES_JOOQ_META=-Dsources=jOOQ-src/jooq-meta-$VERSION-sources.jarSOURCES_JOOQ_CODEGEN=-Dsources=jOOQ-src/jooq-codegen-$VERSION-sources.jarSOURCES_JOOQ_CODEGEN_MAVEN=-Dsources=jOOQ-src/jooq-codegen-maven-$VERSION-sources.jarSOURCES_JOOQ_SCALA=-Dsources=jOOQ-src/jooq-scala-$VERSION-sources.jar fimvn install:install-file -Dfile=jOOQ-pom/pom.xml -DgroupId=org.jooq -DartifactId=jooq-parent -Dversion=$VERSION -Dpackaging=pom mvn install:install-file -Dfile=jOOQ-lib/jooq-$VERSION.jar -DgroupId=org.jooq -DartifactId=jooq -Dversion=$VERSION -Dpackaging=jar $JAVADOC_JOOQ $SOURCES_JOOQ -DpomFile=jOOQ-pom/jooq/pom.xml mvn install:install-file -Dfile=jOOQ-lib/jooq-meta-$VERSION.jar -DgroupId=org.jooq -DartifactId=jooq-meta -Dversion=$VERSION -Dpackaging=jar $JAVADOC_JOOQ_META $SOURCES_JOOQ_META -DpomFile=jOOQ-pom/jooq-meta/pom.xml mvn install:install-file -Dfile=jOOQ-lib/jooq-codegen-$VERSION.jar -DgroupId=org.jooq -DartifactId=jooq-codegen -Dversion=$VERSION -Dpackaging=jar $JAVADOC_JOOQ_CODEGEN $SOURCES_JOOQ_CODEGEN -DpomFile=jOOQ-pom/jooq-codegen/pom.xml mvn install:install-file -Dfile=jOOQ-lib/jooq-codegen-maven-$VERSION.jar -DgroupId=org.jooq -DartifactId=jooq-codegen-maven -Dversion=$VERSION -Dpackaging=jar $JAVADOC_JOOQ_CODEGEN_MAVEN $SOURCES_JOOQ_CODEGEN_META -DpomFile=jOOQ-pom/jooq-codegen-maven/pom.xml mvn install:install-file -Dfile=jOOQ-lib/jooq-scala-$VERSION.jar -DgroupId=org.jooq -DartifactId=jooq-scala -Dversion=$VERSION -Dpackaging=jar $JAVADOC_JOOQ_SCALA $SOURCES_JOOQ_SCALA -DpomFile=jOOQ-pom/jooq-scala/pom.xml

上面的腳本實際上檢查發行版中是否有Javadoc,Sources和/或Binaries,然后安裝:

  • 父pom.xml
  • 各種工件二進制文件,源文件,javadocs和pom.xml文件

這種方法的優點

現在可以像引用任何其他類型的依賴項一樣引用依賴項,因為人工制品已在本地存儲庫中注冊。 此外,它們還可以傳遞給模塊自己的依賴項,這些依賴關系可以傳遞-這可能是您在使用jOOQ時想要的。 然后,您將指定相關性:

<dependency><groupId>org.jooq</groupId><artifactId>jooq</artifactId><version>${jooq.version}</version> </dependency><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>3.0</version><scope>provided</scope> </dependency>

這種方法的缺點

依賴項的安裝涉及一個手動步驟。 如果您沒有上述可用的腳本,那么弄清楚如何逐步將所有這些依賴項導入到您的存儲庫中可能會很麻煩。 特別是,如果您正在運行演示或原型,則可能在最壞的情況下導致意外的編譯失敗。

要走的路

顯然,在實際的項目設置中,以上兩種方法都不足夠,并且您可能會將庫導入本地Nexus或Bintray或正在使用的任何存儲庫中。 只是要注意商業交付物可能對分銷的潛在限制。

在此處可以找到有關如何將人工制品安裝到Nexus的小教程 。

翻譯自: https://www.javacodegeeks.com/2014/12/how-to-integrate-commercial-third-party-artefacts-into-your-maven-build.html

maven將第三方依賴

總結

以上是生活随笔為你收集整理的maven将第三方依赖_如何将商业第三方文物整合到您的Maven版本中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。