我正在将一个项目从Ant转换为Maven,我遇到了一个处理UTF-8字符的特定单元测试的问题.问题是关于以下字符串:
String l_string = "?äÁÓý\n€????\n?????";
Run Code Online (Sandbox Code Playgroud)
问题是单元测试失败,因为String被读取如下:
?äÁÓý
€????
?????
Run Code Online (Sandbox Code Playgroud)
java类保存为UTF-8,我还在pom.xml中指定了UTF-8的构建编码.
这是我的pom.xml的摘录:
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.15</version>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?如果有人能在这里帮助我,那就太好了.
更新
关于测试代码:
@Test
public void testTransformation()
{
String l_string = "?äÁÓý\n€????\n?????";
System.out.println( ">>> " + l_string );
c_log.info( l_string );
StringBuffer l_stringBuffer = new StringBuffer();
int l_stringLength = …Run Code Online (Sandbox Code Playgroud) 在我的新项目中,我遇到了一个复杂的基础设施,其中包含多个模块,这些模块多年来以令人不快的,不受控制的方式增长.
要说明一点:构建过程是恐怖的.有超过40个不同的,复杂的Ant文件,它们连接多次,SOA框架也生成了几个动态Ant文件.花了几天时间才真正了解所有依赖项,并最终构建整个项目而没有任何错误.
我的计划是或者是将整个项目从Ant迁移到Maven,因为计划了新组件,我希望将来能够避免这些问题,因为它现在的方式太可怕了;-)
由于我是大型项目迁移的新手,我对最佳工作流程有点困惑.涉及到许多XML文件和脚本,它们分布在非Maven目录结构中.总的来说,涉及的文件超过3000个.其中一个主要的问题是,我不知道我是否真的应该尝试迁移在已知的Maven目录结构的一切,因此风险无尽的编辑和每一个文件的重构.或者我应该保持文件夹结构不变并膨胀我的pom.xml文件,并可能遇到所有不同涉及的插件的问题?老实说,这两种方式听起来都不太具有建设性.
将此维度中的项目迁移到Maven是否有意义?特别是当SOA框架必须使用自己的Ant文件时 - 因此需要Ant和Maven的组合.简化此流程的最佳策略是什么?
谢谢你的所有建议.