當前位置:首頁 » 數據倉庫 » maven子模塊之間配置依賴怎麼設置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

maven子模塊之間配置依賴怎麼設置

發布時間: 2022-04-04 13:56:51

1. 如何在Maven中配置Spring依賴

1.1 spring-security-core

Spring Security的核心功能是由spring-security-core包提供的,包含了認證和訪問控制功能、支持standalone應用程序、方法級安全和JDBC支持。

3.2.3.RELEASE
4.0.4.RELEASE

org.springframework.security
spring-security-core
${org.springframework.security.version}

注意:我們使用的是3.2.x版本的Spring Security--Spring和Spring Security有著不同的版本計劃,所以他們的版本號之間沒有一對一關系。

如果項目使用的是較老版本的Spring,需要注意的時Spring Security 3.1.x版本不依賴於Spring 3.1.x版本,因為Spring Security 3.1.x版本在Spring 3.1之前發布。Spring的計劃是在後續的版本中,使雙方的版本號更為接近,更多細節請查看這個JIRA。我們將在後面的內容中看看這種情況對我們的實際影響。

1.2 spring-security-web

要為Spring Security增加Web支持,需要引入spring-security-web依賴:

org.springframework.security
spring-security-web
${org.springframework.security.version}

這個項目為Servlet環境引入了針對URL訪問控制的相關基礎安全組件和過濾器。

1.3 Spring Security與較老版本的Spring Core之間的依賴問題

如上文所述,這個新的依賴產生一個Maven依賴關系問題,Spring Security的相關jar不依賴於最新的Spring core的jar (而是以前的版本)。這可能使的被依賴的Spring core相關包在類路徑中被配置前在最新的Spring 4.x相關包的前面。

這是如何發生的呢?我們需要了解Maven處理版本沖突的機制,Maven會選擇與依賴樹樹根最接近的版本。在之前的情況中,spring-orm依賴4.x版本的spring-core,而spring-security-core依賴於3.2.8版本的spring-core。因此,spring-orm和sprint-security-web的定義順序就是一個問題,先定義的會有更高的優先順序。最終情況就是,我們的類路徑中會有兩個版本的spring-core。

為了避免這類問題,我們需要在我們的pom文件中明確指定一些Spring依賴,而不依靠Maven隱式依賴機制。我們將在pom的根文件中定義特定的依賴關系,這樣這些依賴關系將會有更高的優先順序。下面例子中,將對所有的Spring核心組件明確定義相同的版本,對於多模塊項目,需要在父配置文件的dependencyManagement屬性中定義。

org.springframework
spring-core
${org.springframework.version}

org.springframework
spring-context
${org.springframework.version}

org.springframework
spring-jdbc
${org.springframework.version}

org.springframework
spring-beans
${org.springframework.version}

org.springframework
spring-aop
${org.springframework.version}

org.springframework
spring-tx
${org.springframework.version}

org.springframework
spring-expression
${org.springframework.version}

org.springframework
spring-web
${org.springframework.version}

1.4 spring-security-config及其他

要使用豐富的Spring Security XML的命名空間,需要定義spring-security-config依賴:

org.springframework.security
spring-security-config
${org.springframework.security.version}
runtime

沒有任何代碼需要在編譯時依賴這個包,所以它的范圍應該定義為runtime。

最後,LDAP、ACL、CAS和OpenID支持需要分別增加各自的依賴包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。

2. Maven中子模塊怎麼引用parent模塊中的properties

如果你只是希望在子模塊中依賴父模塊中相同版本的spring相關的dependency, 可以在父模塊中的dependencyManagement定義公共依賴, 然後子模塊中依賴相應的dependency時,就不用寫version欄位了,只寫groupId跟artifactId就可以了。


3. 分布式項目中maven互相依賴,如何修改其他項目的jar包

這個子模塊有這個common的jar包依賴,只要先編譯common這個jar包,子模塊就會獲取,記住要先編譯被依賴者,不然子模塊使用到的是老jar包

4. maven怎麼進行pom.xml的依賴配置

所有的maven project都有一個pom.xml文件,
打開pom.xml,找到dependency tag:<dependencies></dependencies>所在的位置;
然後到 maven repository中找到你所需要的包;
進入jar包,點選相應的版本,然後頁面中就會有加入maven project的dependency,類似下面的內容:

[html] view plain
<dependency>
<groupId>org.broadleafcommerce</groupId>
<artifactId>broadleaf-framework</artifactId>
<version>3.0.12-GA</version>
</dependency>

將這個語句片拷下來,放到你的project中的pom.xml文件的<dependencies></dependencies>中。
保存pom.xml文件,project就會自動build,將所需要的jar包導入到項目中,在Maven Dependencies目錄下。

5. maven 模塊與模塊之間怎麼更新

置條件:
1.安裝有吃飯的傢伙JAVA和MAVEN.
首先,需要有一個packaging類型為pom的pom.xml文件即我們的parent項目pom文件.在這個parent項目中配置好groupId,artifactId,version以及properties,prerequisites,dependencies.
還有一個重要的配置項是moles.加入了這個項目之後執行maven版本號更新時才會同時去更新子模塊的版本號.
子模塊改變的部分:
<parent>
<groupId>com.hlf</groupId>
<artifactId>common-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.hlf</groupId>
<artifactId>projectA</artifactId>

發現沒有,在這里只放了父模塊的version沒有放子模塊的.
這時我們執行:
>mvn versions:set -DnewVersion=0.0.2-SNAPSHOT
會發現在父模塊和子模塊下面都生成maven的版本控制文件(姑且這么叫吧,雖然看起來就是一個文件備份)pom.xml.versionsBackup.
同時,父模塊和子模塊的verion都更新為了0.0.2-SNAPSHOT.
<parent>
<groupId>com.hlf</groupId>
<artifactId>common-parent</artifactId>
<version>0.0.2-SNAPSHOT</version>
</parent>
<groupId>com.hlf</groupId>
<artifactId>projectA</artifactId>
到這里已經完成了子模塊的版本號更新.

6. maven 多項目依賴怎麼實現

qdInterface-parent是父模塊,裡麵包含

?

1
2
3
4

<moles>
<mole>qdInterface-service</mole>
……
</moles>

任意一個子模塊,形如 qdinterface-service/pom.xml 文件裡面

?

1
2
3
4
5

<parent>
<groupId>XXX</groupId>
<artifactId>qdInterface-parent</artifactId>
<version>XXX</version>
</parent>

通過類似這種形式的配置,來關聯起來多個模塊之間的父子關系,

繼承關系的話,直接使用 dependency 將依賴添加進來,
僅供參考

7. 兩個maven項目,雙向依賴,應如何配置

maven2的學習曲線非常陡,好多高手都因此堅持ant也不用maven2,所以你指望誰能在這里幾句話跟你說清楚。光是學習maven2的書已經非常厚,不像其他的工具學習只需要看幾頁教程就行。
maven2隻做依賴管理的話還相對簡單,真正用來管理項目我現在也沒研究很透徹。
建議要麼靜下心來慢慢學,要不還老老實實用ant

8. 如何在maven中配置一個依賴包

1先創建一個基於maven的項目,點擊打開pom.xml文件 2 點擊Dependencies標簽頁,然後點擊Dependencies中的add按鈕,輸入我們想添加的jar包名字,就會出現下圖中所示,它會把對應名稱的所有版本jar包列出來 3 點擊OK之後,在pom.xml會帶回jar包的

9. maven多模塊的子模塊可相互依賴嗎

Dao層負責資料庫交互,封裝了Hibernate交互的類。
Service層處理業務邏輯,放一些Service介面和實現相關的Bean。
Web層負責與客戶端交互,主要有一些Structs的Action類。

10. 求救maven dependency問題,怎麼設置依賴性,讓該mole依賴的不是jar包而是其他mole未編譯的文件夾

有兩種方法:

方法一:直接在當前mole中的pom.xml文件中添加你需要依賴的mole的坐標。這種方式簡單,用的也比較多。

例如:

<dependencies>
<dependency>
<groupId>org.test.autodeploy</groupId>
<artifactId>org.test.autodeploy</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>

方法二:這要中間使用一個nexus倉庫,首先把你的工程使用maven編譯打包上傳到nexus,這樣其他項目就可以依賴了。這種方法的有點是其他任何工程都可以依賴,可以把這些做成組件,但缺點是比較麻煩。