⑴ 如何在maven pom.xml文件中設置java編譯器版本
1,生成3個目錄/lib,/conf,/bin目錄
2,把所有的jar目錄編譯、拷貝到/lib目錄(包括maven的jar包和lib目錄下的jar,以及編譯的jar包)
3,把所有的啟動腳本從工程根目錄拷貝到/bin目錄
4,把所有的配置文件從src/main/resources拷貝到/conf
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>test</groupId>
<artifactId>test.common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>test.common</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 這里省略n行 -->
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<!-- 把src/main/resources目錄下所有的文件拷貝到conf目錄中 -->
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}/conf</targetPath>
</resource>
<!-- 把lib目錄下所有的文件拷貝到lib目錄中
(可能有些jar包沒有辦法在maven中找到,需要放在lib目錄中) -->
<resource>
<directory>lib</directory>
<targetPath>${project.build.directory}/lib</targetPath>
</resource>
<!-- 把放在根目錄下的腳本文件.sh,.bat拷貝到bin目錄中 -->
<resource>
<directory>.</directory>
<includes>
<include>**/*.sh</include>
<include>**/*.bat</include>
</includes>
<targetPath>${project.build.directory}/bin</targetPath>
</resource>
</resources>
<plugins>
<!-- 用於編譯的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<!-- 如果配置了JAVA_HOME,下面應該可以不用配 -->
<executable>C:\Program Files (x86)\Java\jdk1.8.0_91\bin\javac.exe</executable>
</configuration>
</plugin>
<!-- 用於生成jar包的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- 把生成的jar包放在lib目錄下(和其他所有jar包一起) -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
<excludes>
<!-- 排除掉一些文件,不要放到jar包中,
這里是為了排除掉src/main/resources中的文件(它們應該放到conf目錄)
這里只能指定要排除的目標文件,而不能指定源文件,雖然不夠完美,但是基本能達到目的。 -->
<exclude>*.xml</exclude>
<exclude>*.properties</exclude>
</excludes>
</configuration>
</plugin>
<!-- 用於拷貝maven依賴的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>-dependencies</id>
<phase>package</phase>
<goals>
<goal>-dependencies</goal>
</goals>
<configuration>
<!-- 把依賴的所有maven jar包拷貝到lib目錄中(這樣所有的jar包都在lib目錄中) -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 用於拷貝resource的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 配置生成源代碼jar的plugin -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<configuration>
<attach>true</attach>
<encoding>UTF-8</encoding>
<!-- 配置源代碼jar文件的存放路徑,和其他jar文件一起放在lib目錄 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
然後執行maven package打包。如果是eclipse,在Project Explorer-> Run As –> Maven Build… –>在Goals中輸入package,點Run進行編譯。
⑵ maven編譯時 修改了pom.xml中jar包版本號,但是依舊會下載老版本jar包,為什麼
可能和ide有關系
調查方法:
用命令行 maven clean update 試試
如果是idea,pom-右鍵-重新載入
⑶ 如何配置pom.xml用maven打包java工程
<groupId>per.summer.MyBatis</groupId>
<artifactId>firsteBybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
這個是打包成jar
<groupId>per.summer.mybatis</groupId>
<artifactId>ssm-maven</artifactId>
<packaging>war</packaging>
這個是打包成war
GroupID是項目組織唯一的標識符,實際對應JAVA的包的結構,是main目錄里java的目錄結構。
ArtifactID就是項目的唯一的標識符,實際對應項目的名稱,就是項目根目錄的名稱。根據你自己的來就是了
⑷ 為什麼Maven Update Project JDK變回1.5
主要原因是每次Update時,它就會使用settings文件下的默認值。(原來這是maven自己搗的鬼)
Maven官方文檔有如下描述:
編譯器插件用來編譯項目的源文件.從3.0版本開始,
用來編譯Java源文件的默認編譯器是javax.tools.JavaCompiler (如果你是用的是java 1.6) 。
如果你想強制性的讓插件使用javac,你必須配置插件選項 forceJavacCompilerUse。
同時需要注意的是目前source選項和target 選項的默認設置都是1.5, 與運行Maven時的JDK版本無關。
如果你想要改變這些默認設置, 可以參考 Setting the -source and -target of the Java Compiler中的描述來設置 source 和target 選項。
這是Maven已知的一個特性。除非在你的POM文件中顯示的指定一個版本,否則會使用編譯器默認的source/target版本1.5。主要還是在於Eclipse中Maven的集成方式起到了關鍵作用, 它會從POM文件中生成項目的.project,.classpath以及.settings, 因此除非POM文件指定了正確的JDK版本, 否則你每次更新項目配置的時候它都會重置到1.5版本。
解決方案
方案一
在pom.xml文件中增加如下配置:
修改Eclipse中的設置,使配置生效。此方案全局有效。
⑸ 在pom中如何指定jdk
1、直接在maven環境變數中進行指定
2、dependency下的屬性classifier
這個屬性用於區分從同一個pom編譯出來的但是內容不同的同名包,例如同一個工程編譯出兩個artifact,一個支持jdk1.5一個支持jdk1.4,那麼就可以使用這個來命名為jdk15和jdk14來區分,它如果出現在包名中,那麼它必須跟在版本號後。還有一種情況是將一個工程的一些次要artifact附到主要artifact中,就可以使用這個來區分,例如一個工程產生source,javadoc,class三種東西,那麼就可以使用不同的classifier來分別標識這些東西。
⑹ 如何配置pom.xml用maven打包java工程
最近由於項目需要,研究了一下maven的打包,項目要做到
1,生成3個目錄/lib,/conf,/bin目錄
2,把所有的jar目錄編譯、拷貝到/lib目錄(包括maven的jar包和lib目錄下的jar,以及編譯的jar包)
3,把所有的啟動腳本從工程根目錄拷貝到/bin目錄
4,把所有的配置文件從src/main/resources拷貝到/conf
VX眾號:Java6359
⑺ 如何配置pom.xml用maven打包java工程
1,生成3個目錄/lib,/conf,/bin目錄
2,把所有的jar目錄編譯、拷貝到/lib目錄(包括maven的jar包和lib目錄下的jar,以及編譯的jar包)
3,把所有的啟動腳本從工程根目錄拷貝到/bin目錄
4,把所有的配置文件從src/main/resources拷貝到/conf
下面是配置的pom.xml,我把相關的配置都加了注釋,一看就能明白,把build節點拷貝到你們的項目中,就基本可以用了:)