Java Maven项目问题整理

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Java Maven项目问题整理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

src/main/java文件夹

代码文件位于src/main/java文件夹中,资源文件位于src/main/resources文件夹中。
Maven将Java项目编译到target文件夹中。 /target/classes必须是根目录。 编译后,发现.class文件位于此文件夹下的相应子文件夹中,src/main/resources下的文件复制到此文件夹下。

src/test/java文件夹

Maven将src/test/java文件夹下的代码编译到target/test-classes文件夹下。 同样,如果资源文件位于src/test/resources下,会将其复制到target/test-classes文件夹下。
测试代码的执行时,优先使用test-classes文件夹下的资源文件,如果不存在,则使用classes文件夹下的资源文件。

src/main/java和src/test/java文件夹区别

第一点:
src/main/java:里面的java文件只能直接加载src/main/resources下的资源,不能直接加载src/test/resources下的资源;
src/test/java: 里面的java文件既能加载src/test/resources下的资源,又能加载src/main/resources下的资源,当两个resources下都有要加载的同名资源时候,优先选择src/test/java下的资源;

第二点:
若在src/main/java中某个方法使用@Test进行测试,则能读取到src/test/resources目录下的资源
例如:流程引擎中的ProcessEngines.getDefaultProcessEngine();需要加载默认文件”activiti.cfg.xml”,则要将该文件放在相应的资源目录中。

读取maven项目中src/test/resources里的配置文件

2种方法。注意,只有在运行单元测试的时候才读取test目录下的文件

AppTest.class.getResourceAsStream("/example.xml");

AppTest.class.getClassLoader().getResourceAsStream("example.xml");

//如果此类是由bootstrap类加载器加载的,则使用
AppTest.class.getClassLoader().getSystemResourceAsStream("example.xml");

如果Test.class.getResource()资源是以/开头,则指向CLASSPATH根目录;
如果Test.class.getResource()是以文件(包名)开头,则相对Test.class文件所在包查找资源;

maven 项目导入本地jar包

直接打开项目的pom文件,在dependencies节点中添加下面的一段:
注意,一般 groupId 和 artifactId 设置成jar包名字即可,version随便写

<dependency>
    <groupId>org.example</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>/xxx/xxx.jar</systemPath>
</dependency>

如果,想写更加准确的项目信息,可以在jar包中找到相关信息:

mkdir xxx
cd xxx
jar --help
jar -xvf <jar file>
进入META-INF 文件夹,找到 pom.xml文件
找到其对应的 groupId,artifactId,version等信息,

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155606.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!