`
obullxl
  • 浏览: 183215 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maven管理工程中增加多个源代码路径

阅读更多
为了更好的把一个项目模块化,于是想把一个项目分成多个工程,一个模块(Bundle)一个工程,模块之间相互依赖,当然不能循环依赖,最后通过OSGi依赖启动各个模块,可是试验了很久,还是没有成功,主要有两个原因:一是模块如何排序,二是模块的Spring上下文如何解决。

多个工程的想法暂时行不能,还是回到老办法,只有一个工程,模块间通过包名来区分(当然这不是我最终想要的结果)。后来我又想,能不能在一个工程中增加多个源代码路径,以源代码路径来区分(在默认情况下,Maven只有四个源代码路径的:src/main/java, src/main/resources, src/test/java, src/test/resources)?

Maven真是不愧我这么顶它,果然是可以的:
<build>
<resources>
<resource>
<directory>src/config/resources</directory>
</resource>
</resources>
</build>

这是不我最终想要的,OSGi,我也要顶你!








2
1
分享到:
评论
3 楼 xyz20003 2010-07-21  
startlevel?
我是手工指定的。
2 楼 obullxl 2010-07-21  
xyz20003 写道
只要用父子继承的项目结构,发布整体项目时maven就会自动检测模块间的相互依赖,maven会自动帮你搞定前后编译顺序。

以前我也试过指定多个sourceDirectory,但是那样也只能编译成一个jar,所以这种出发点是错误的。


这样肯定是可以的,但是如何加载各个Bundle?Bundle之间相互依赖,如何解决依赖关系,比如:A-->B-->C,则Bundle C肯定要在A和B前启动,B要在A前启动?

其实OSGi的实现框架都已经做好了:Equinox,Felix等,但是我目前是想要结合Spring,能够启动Web应用。
1 楼 xyz20003 2010-07-03  
只要用父子继承的项目结构,发布整体项目时maven就会自动检测模块间的相互依赖,maven会自动帮你搞定前后编译顺序。

以前我也试过指定多个sourceDirectory,但是那样也只能编译成一个jar,所以这种出发点是错误的。

相关推荐

    Maven 构建多个项目示例代码

    Maven会自动下载这些依赖并将其添加到项目的类路径中。在多模块项目中,父项目可以声明公共的依赖,子模块只需要继承父项目,就可以自动获取这些依赖。 4. **生命周期与构建过程**:Maven具有预定义的生命周期,如`...

    ​实现maven项目中多版本依赖兼容使用解决方案

    然而,当项目引入多个库时,可能会遇到依赖冲突的问题。依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但这可能导致运行时错误或不兼容性。在本案例中,公司需要使用一个...

    maven逆向工程和分页插件

    逆向工程在软件开发中通常指的是将现有的数据库结构转换为对应的源代码,比如实体类、数据访问对象(DAO)和数据库映射文件等。在Java领域,Maven是一款广泛使用的项目管理和集成工具,它可以帮助开发者管理项目的...

    maven之开源中国Maven库

    对于大型团队,可能还需要管理多个Maven项目,这时可以使用不同的用户配置,通过`&lt;profiles&gt;`和`&lt;activeProfiles&gt;`标签来切换不同环境的配置。 总的来说,Maven与开源中国Maven库的结合使用,对于国内Java开发者而...

    maven管理的web项目

    每个插件都有一个或多个目标(goal),例如`maven-compiler-plugin`用于编译源代码,`maven-war-plugin`则用于打包Web应用。 5. **模块化项目**:大型Web项目通常采用多模块结构,Maven支持父子POM结构,使得共享...

    springboot工程(单个maven工程)利用proguard实现代码混淆

    在Java开发领域,尤其是Spring Boot应用的开发过程中,保护源代码的安全性和防止反编译是十分重要的。ProGuard是一款强大的代码混淆、优化和压缩工具,它可以帮助开发者将Java字节码混淆为难以阅读的形式,从而增加...

    使用Maven assembly打多个自定义包及War包简介

    本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...

    简易聊天服务源代码,eclipse maven工程

    【标题】"简易聊天服务源代码,eclipse maven工程" 涉及到的核心技术是SpringBoot和WebSocket,它们都是现代Java开发中的关键组件。SpringBoot是Spring框架的一个简化版,旨在简化新Spring应用的初始搭建以及开发...

    手动创建maven工程

    1. **创建目录结构**:遵循Maven的标准目录结构,包括`src/main/java`用于放置源代码,`src/main/resources`存放资源文件,`src/test/java`和`src/test/resources`则分别用于测试代码和资源。 2. **编写pom.xml**:...

    孔浩maven工程

    6. **多模块项目(Multi-module projects)**:如果一个项目由多个子项目组成,Maven可以通过聚合项目(Aggregator Project)来管理这些子项目,方便一次性构建所有子项目。 7. **Maven Profiles**:Maven配置文件...

    maven 实用指南 中文

    2. **编译(Compilation)**:编译源代码,并生成相应的类文件。 3. **测试(Testing)**:运行单元测试,生成测试报告。 4. **打包(Packaging)**:将编译后的结果打包成指定格式,如JAR、WAR等。 5. **集成...

    maven项目管理工具

    6. **插件(Plugins)**: Maven通过插件执行特定的任务,如编译源代码、运行测试、打包JAR或WAR等。每个构建阶段都关联了一个或多个插件目标(goal)。 **二、Maven的工作流程** 1. **解析POM文件**: Maven读取...

    maven聚合项目

    在本项目中,我们关注的是"Maven聚合项目",这是一个特殊类型的Maven项目,它可以管理多个相关但独立的子项目。 **一、Maven聚合项目** Maven聚合项目(Aggregator Project)的主要目的是将多个相关的Maven项目...

    maven基础入门教程

    Maven特别适合于Java语言的项目管理,它可以帮助开发者从繁琐的项目配置和环境搭建中解放出来,将更多的精力投入到业务逻辑的开发上。由于其跨平台特性,Maven也适合在不同的操作系统中使用。 通过以上知识点的...

    minecraft源代码亲测可运行

    《深入探索Minecraft源代码:亲测可运行的编程之旅》 Minecraft,这款全球知名的沙盒游戏,以其无限的创造力和丰富的游戏性...无论你是出于兴趣还是专业需求,投身于这个源代码的世界都将是一次富有挑战和收获的旅程。

    apache-maven-3.6.0_apache-maven-3.6.0_maven压缩包_maven3.6.0下载_

    在开发过程中,`mvn install`命令会编译源代码,运行测试,并将结果部署到本地仓库,使得其他项目可以通过依赖管理机制引用。`mvn clean`用于清除构建生成的临时文件,而`mvn package`则会打包项目,生成最终的JAR或...

    Maven依赖管理项目构建工具.pdf

    5. Maven工程项目结构说明 标准的Maven项目结构包括src/main/java(源代码)、src/main/resources(资源文件)、src/test/java(测试代码)、src/test/resources(测试资源)以及pom.xml(项目配置文件)。...

    maven3.2.5压缩包(本地仓库路径修改过了的)

    - **聚合**:多个项目可以在一个`pom.xml`中聚合,方便一起构建和管理。 ### 6. Maven的多模块项目 对于大型项目,Maven支持多模块结构,每个模块有自己的`pom.xml`,而顶级`pom.xml`作为聚合项目,管理所有子模块...

    maven API maven API

    1. **构建命令**: Maven 提供了一套命令行工具,如`mvn clean`用于清理目标目录,`mvn compile`用于编译源代码,`mvn test`执行测试,`mvn package`打包项目,`mvn install`将项目安装到本地仓库,`mvn deploy`发布...

    Maven

    每个插件都对应生命周期中的一个或多个阶段,如maven-compiler-plugin用于编译源代码,maven-surefire-plugin负责运行单元测试。 5. **多模块项目**: Maven支持多模块项目,一个父POM可以管理多个子模块,统一...

Global site tag (gtag.js) - Google Analytics