文档章节

maven使用笔记

b
 baijichuan
发布于 2016/08/04 10:54
字数 833
阅读 4
收藏 0

maven简介及建立项目见Maven那点事儿(Eclipse版)。说的很详细了。

下面主要记录java项目转化成maven项目遇到的问题。

首先,右键选择 Java项目,选择“Configure –> Convert to Maven Project”,在弹出的窗口填写“Group ID”和“Artifact Id”。

可以看到目录下多出了几个文件。注意pom.xml文件,后续要修改这个文件。

接下来需要在src中创建main文件夹和test文件夹。并在它们下分别建立 java 子目录。即建立如下路径,src/main/java,src/test/java。

然后修改 .classpath 文件,或用一个现成的 Maven .classpath 文件覆盖。

将java项目的classpath文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

改为

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

最后修改pom.xml文件,该用于定义或者添加jar包的依赖,java项目中需要自己添加的路径,在maven中需要自己添加到pom.xml文件中。

jar包依赖关键字为<dependency>,同时需要指定jdk版本,maven会自己去下载pom.xml中配置的依赖项目。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.weibo</groupId>
  <artifactId>logs_maven</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <name>logs_maven</name>
  <url>http://maven.apache.org</url>

<!-- 指定属性 -->
  <properties>
      <junit.version>4.10</junit.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <jdk.version>1.8</jdk.version>
  </properties>

  <build>
  	<defaultGoal>compile</defaultGoal> 
      <plugins>
          <!-- 指定JDK的编译版本 -->
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.5.1</version>
              <configuration>
                  <source>${jdk.version}</source>
                  <target>${jdk.version}</target>
                  <showWarnings>true</showWarnings>
              </configuration>
          </plugin>
      </plugins>
  </build>
  
 
  <dependencies>
   <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

如果项目上还有红叉标识,依次点击,Markers(Window-->show veiw-->Markers),查看错误的详细信息。按照信息排查。

最后可以,项目右击-->Maven-->Update Project Configuration,应该就没有红叉了。

配置完成后,点击maven项目,选择maven build,命令行显示sucess说明配置成功了。

到这里项目转换就大功告成了。

但是java项目转maven项目后,如果需要操作文件,那么路径需要相对变化,maven中资源文件统一放在main/resources中。有以下两种读取资源文件的方式。
 

//获取classpath路径

//System.out.println("classpath路径: "+LogsAnalysis.class.getClassLoader().getResource("").getPath());

 //获取当前类的加载路径

 //System.out.println("当前类加载路径: "+LogsAnalysis.class.getResource("").getPath());

例如资源文件路径为main/resources/test/test.txt,那么可以这样

 File f=new File(LogsAnalysis.class.getClassLoader().getResource("test/test.txt").getPath());
//获取test.txt文件

修改路径后,运行相应的java程序,提示成功就真正完成项目转换了。

遇到的问题,如何用java写文件?如何用java删除资源文件?

© 著作权归作者所有

b
粉丝 0
博文 1
码字总数 833
作品 0
秦皇岛
私信 提问

暂无文章

android 事件分发

记录下对Android事件分发的理解: 如果a作为viewgroup,b作为view,b包含在a中。事件会先传递到viewgroup中,既a。然后a会进行事件分发给子view。事件分发的方法中,会有个判断,是否要分发给...

醉雨
12分钟前
0
0
今天的学习

今天学到了 get和post传参: Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示 Post传输的数据量大,理论上是无限大,而Get方法由于受到URL长度的限制,只能传递大约1024字节 ...

墨冥
18分钟前
0
0
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

public class Solution { private ArrayList<ArrayList<Integer>> listAll = new ArrayList<ArrayList<Integer>>(); ArrayList<ArrayList<Integer>> all= new ArrayList<ArrayList<Integer>>......

南桥北木
20分钟前
0
0
使用lombok编写优雅的Bean对象

使用java编写代码,十之八九都是在写java类,从而构建java对象。lombok之前也说了不少,但使用了这么多年,感觉还是有很多技巧可以使用的。 毫无疑问,使用lombok,编写的java代码很优雅,而...

polly
21分钟前
0
0
表现与数据分离、web语义化的理解

表现与数据分离 什么是表现与数据分离? “分离”说的是两方面: 第一方面是前端与后台分离,所有数据都是后台通过AJAX发送给前端,前端处理数据展现页面,不需要后台在页面中插入变量。 第二...

祖达
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部