2017-01-23 77 views
0

我正在從ant構建工具轉換爲maven工具。 的Ant build.xml以下方式如何設置在maven中設置的屬性中聲明的屬性的類路徑

<property name="home.dir" value="${basedir}"/> 
<property name="external.dir" value="${home.dir}/external"/> 

已初始化屬性和類路徑已在build.xml文件如下設置:

<target name="setClassPath"> 
    <path id="classpath_jars"> 
     <fileset dir="${external.dir}/log4j" includes="*.jar"/> 
    </path> 
</target> 

能否請你幫我如何在POM添加類路徑。 XML?

回答

1

您可以使用additionalClasspathElement標記在pom.xml中添加自定義類路徑。

<additionalClasspathElement>${external.dir}/log4j</additionalClasspathElement> 
+1

爲什麼不將log4j作爲依賴項添加到項目中?針對原則**約定而不是配置**是否有意義? – JimHawkins

+0

這是解決方案,但@user特別要求設置類路徑。 –

+1

當然是他做的,但他是一個初學maven的人。所以我們應該指出maven原理 – JimHawkins

1

能否請你幫我如何在pom.xml中添加類路徑?

不要在意使用maven時手動定義類路徑。
一個你已經內化的時候開始學習Maven是最基本的東西:Maven的如下概念約定優於配置

對於類路徑,這意味着,每一個庫(Maven的術語是依賴),其您在pom.xml的部分<dependencies>中添加的內容將自動成爲類路徑的一部分。

<?xml version="1.0" encoding="UTF-8"?> 
<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>de.so</groupId> 
    <artifactId>csvProject</artifactId> 
    <version>1.0.0</version> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <log4j.version>2.3</log4j.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.opencsv</groupId> 
      <artifactId>opencsv</artifactId> 
      <version>3.7</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j.version}</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j.version}</version> 
      <scope>runtime</scope> 
     </dependency> 
    </dependencies> 
</project> 

如果你需要一個配置文件,或者是CLASSPATH的一部分圖像,把它們放在你的項目的resources文件夾。

一個典型的起動Maven項目看起來是這樣的:

csvProject 
| pom.xml 
| 
+---src 
| +---main 
| | +---java 
| | | \---de 
| | |  \---so 
| | |    CsvExample.java 
| | | 
| | \---resources 
| | | \---images 
| | | |   logo.png 
| | | | some.properties 
| | | \---de 
| |   \---so 
| |     more.properties 
| \---test 
|  \---java 

更多信息看Maven home或使用谷歌找到一個教程。