当前位置:首页 » 数据仓库 » 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,这样其他项目就可以依赖了。这种方法的有点是其他任何工程都可以依赖,可以把这些做成组件,但缺点是比较麻烦。