maven設置utf8編譯
① maven打包成war,方到tomcat裡面運行,頁面出現亂碼
編碼問題,有些代碼可能是GBK的,有些可能是UTF-8的,maven這里指定了UTF-8,建議先在本地測試,查看是否有亂碼。當然也有可能是log工具的問題。
② 如何在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進行編譯。
③ IDEA不編譯java文件,一直提示找不到包一類的錯誤,我研究五個多小時了也沒解決,求大佬!!!
編譯沒成功
看錯誤信息的最後幾行,那幾個org.apache相關的包,你在pom里添加依賴沒有(如果你這句話都沒聽明白,那你還是先學習下maven基礎)
④ 如何告訴gradle構建時用utf-8
build.gradle
//設置腳本的運行環境
buildscript {
//支持java 依賴庫管理(maven/ivy),用於項目的依賴。
repositories {
mavenCentral()
}
//依賴包的定義。支持maven/ivy,遠程,本地庫,也支持單文件
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
//聲明構建的項目類型,這里當然是android了
apply plugin: 'android'
//設置編譯android項目的參數
android {
compileSdkVersion 17
buildToolsVersion "17"
defaultConfig {
minSdkVersion 8
targetSdkVersion 17
}
//Android默認配置
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
//測試所在的路徑,這里假設是tests文件夾,沒有可以不寫這一行
instrumentTest.setRoot('tests')
}
//這個是解決lint報錯的代碼
lintOptions {
abortOnError false
}
/**
* 簽名設置
*/
signingConfigs {
myConfigs {
storeFile file("簽名文件地址")
keyAlias "..."
keyPassword "..."
storePassword "..."
}
}
/**
* 混淆設置
*/
buildTypes {
release {
signingConfig signingConfigs.myConfigs
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
/**
* 渠道打包(不同包名)
*/
proctFlavors {
qqqq {
applicationId = '包名'
}
hhhhh {
applicationId='包名'
}
}
}
/**
* .so文件的導入
*/
task NativeLibs(type: Copy) {
from fileTree(dir: 'libs', include: 'armeabi/*.so') into 'build/lib'
}
tasks.withType(Compile) {
options.encoding = "UTF-8"
}
tasks.withType(Compile) {
compileTask -> compileTask.dependsOn NativeLibs
}
clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
pkgTask.jniFolders = [new File(buildDir, 'lib')]
}
//依賴庫
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
gradle 作為構建工具,能夠很方便的使用本地jar包,以下為使用的代碼塊。
ependencies {
//單文件依賴
compile files('libs/android-support-v4.jar')
//某個文件夾下面全部依賴
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
}
gradle 同時支持maven,ivy,由於ivy我沒用過,所以用maven 作為例子,以下為代碼塊:
repositories {
//從中央庫裡面獲取依賴
mavenCentral()
//或者使用指定的本地maven 庫
maven{
url "file://F:/githubrepo/releases"
}
//或者使用指定的遠程maven庫
maven{
url "遠程庫地址"
}
}
dependencies {
//應用格式: packageName:artifactId:version
compile 'com.google.android:support-v4:r13'}
android {
}
對於項目依賴 android library的話,就不是依賴一個jar,那麼簡單了,在這里需要使用gradle mulit project 機制。在過去,android library並沒有一個很好的包管理方式,簡單來說,在gradle出現以前,官方並沒有一種用於管理android library 依賴包的方式,一般我們都是直接下載別人的android library project 源碼進行集成,而對於第三方的android-maven-plugin 用的是apklib 格式。
而現在,官方終於推出一種android library的打包格式,擴展名為*.aar。前面提到,目前android gradle插件並不支持本地直接使用*.aar文件,不過,支持包管理庫的引用方式,下面,我為大家說一下,怎麼對android library 發布使用。
打包android library
對android library 進行打包直接在library項目下面使用gradle build 即可,然後,你就會在 build/libs 目錄下看到兩個*.aar文件,一個debug包用的,一個是release 下用的,看個人需求使用,這里我們用的是release 版本的 .aar 文件。
⑤ maven filter 中文亂碼,應該用什麼思路解決
1、查看被fitler的文件是否帶utf-8的Bom頭,去掉bom頭,帶了有可能報錯
2、windows maven的war插件的版本,2.1-bata-1有問題,它的編碼識別有問題,懷疑是按照iso-5589-1解析,fitler後的文件16進制查看為3f,造成黑洞現象
3、網上很多解決方式是改成gbk,這個是一種解決方案,如果希望繼續使用utf-8編碼的,請修改war的filter,還有不要忘記resource插件的編碼設置。
⑥ 如何使用maven配置tomcat
這個來個實例最好了
<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path><uriEncoding>UTF-8</uriEncoding></configuration></plugin>簡要說明一下:
path 是訪問應用的路徑
port 是tomcat 的埠號
uriEncoding URL按UTF-8進行編碼,這樣就解決了中文參數亂碼。
配置就這么簡單,基本搞掂,下面看看如何使用。
插件運行
如果Eclipse 安裝了Maven插件,選 擇pom.xml文件,擊右鍵——>選擇 Run As——> Maven build 。
⑦ Maven2的設定問題,求助!
真的好難。
重裝後有沒有安裝windows漏洞補丁呢?新的HD音效與SP2之間有不兼容你聽說過嗎。但是如果你主板光碟音效卡文件夾里有XPSP2-KB888111之類東西的話,就不存在這個問題了。
⑧ maven 編譯時報錯:編碼 UTF-8 的不可映射字元
應該還有別的錯誤,編碼問題正常只是警告,只有報其他錯誤的時候,編碼也提示為錯誤了!
⑨ 如何修改maven的編碼
<build>
<plugins>
<!-- mvn compile 編譯時jdk版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.vesion}</version>
<configuration>
<source>${java.version}</source><!--1.8-->
<target>${java.version}</target><!--1.8-->
<encoding>${project.build.sourceEncoding}</encoding><!--UTF-8-->
</configuration>
</plugin>
</plugins>
</build>
⑩ maven compile亂碼編譯不過去,檢查已是utf-8無bom編碼
看上去不是源代碼的問題,是編譯工具maven出了異常,換一個版本的jdk試一下,我以前遇到過用ant編譯用jdk1.6出現異常,用jdk1.7則正常;另外你用支持UTF8的軟體如記事本或網頁瀏覽器(編碼要選擇utf8)等打開你的RegexUtil.java文件看一下21行是不是有亂碼