小编rek*_*nuc的帖子

如何控制Maven中测试的执行顺序?

我需要按顺序运行测试.我没有在任何地方找到这个充分记录.我更喜欢从命令行执行此操作.就像是

 mvn -Dtest=test1,test2,test3,test5 test
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

testing maven

16
推荐指数
3
解决办法
2万
查看次数

如何在maven shade插件中设置清单类路径?

我正在使用shade插件,除了能够为manifest via设置Class-Path之外,一切正常

 <transformer 
        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
        <mainClass>com.generic.App</mainClass>  
        <classPath>. ./config</classPath>                           
    </transformer>
Run Code Online (Sandbox Code Playgroud)

我明白了

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default)              on project SpringThing: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:2.1:shade for parameter transformer: Cannot find setter, adder nor field in org.apache.maven.plugins.shade.resource.ManifestResourceTransformer for 'classPath' -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

看文件

http://maven.apache.org/plugins/maven-shade-plugin/apidocs/org/apache/maven/plugins/shade/resource/ManifestResourceTransformer.html

应该能够解析任何有效的清单资源吗?我试过clss-path Class-Path ClassPath什么都行不通......

我需要classpath来设置外部app属性文件的位置.

由于一个众所周知的问题,我使用的是阴影插件而不是汇编:

http://blog.idm.fr/2009/09/maven-assembly-plugin-and-spring-namespace-handlers.html

顺便说一下,我可以很容易地在装配中做到这一点:(并且它有效)

 <manifestEntries>
  <Class-Path>. ./config</Class-Path>
 </manifestEntries>
Run Code Online (Sandbox Code Playgroud)

我不能通过maven使用oneJar插件,因为你也无法设置清单条目.(我不认为?)

有任何想法吗?

manifest classpath maven maven-assembly-plugin maven-shade-plugin

16
推荐指数
1
解决办法
2万
查看次数

linux系统中不同用户下的java系统首选项

我试图在一个Linux机器上的不同用户下运行多个jvms(包括tomcat).我没有看到太多问题,但在catalina.out我一直看到这个:

May 30, 2014 1:16:16 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7626 ms
May 30, 2014 1:16:37 PM java.util.prefs.FileSystemPreferences$2 run
WARNING: Could not create system preferences directory. System preferences are unusable.
May 30, 2014 1:16:55 PM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock System prefs. Unix error code -158097957.
May 30, 2014 1:16:55 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Run Code Online (Sandbox Code Playgroud)

我做了一些挖掘/阅读并推断出以下内容:

具有root访问权限的管理员必须创建系统首选项目录 /etc/.java/.systemPrefs with drwxr-xr-x access.

Java正在寻找/etc/.java/.systemPrefs/.system.lock/etc/.java/.systemPrefs/.systemRootModFile

手动创建上述文件(使用"touch"创建空文件)及其包含的目录应该修复.对文件的544权利应该是,对其目录的权限应该是755 …

java linux permissions tomcat root

15
推荐指数
1
解决办法
3万
查看次数

xargs输出缓冲-P并行

我有一个bash函数,我使用xargs -P并行调用

 echo ${list} | xargs -n 1 -P 24 -I@ bash -l -c 'myAwesomeShellFunction @'
Run Code Online (Sandbox Code Playgroud)

一切正常,但输出因为显而易见的原因搞砸了(没有缓冲)

试图找出一种有效缓冲输出的方法.我以为我可以使用awk,但我不够好写这样的脚本,我在谷歌上找不到任何有价值的东西?有人可以帮我在sed或awk中写这个"输出缓冲区"吗?没什么好看的,只是累积输出并在过程终止后吐出.我不关心shell函数执行的顺序,只需要它们的输出缓冲...类似于:

 echo ${list} | xargs -n 1 -P 24 -I@ bash -l -c 'myAwesomeShellFunction @ | sed -u ""'
Run Code Online (Sandbox Code Playgroud)

我按照https://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe尝试使用stdbuf, 但是没有用,我在o和e上指定了缓冲但输出仍然没有缓冲:

 echo ${list} | xargs -n 1 -P 24 -I@ stdbuf -i0 -oL -eL bash -l -c 'myAwesomeShellFunction @'
Run Code Online (Sandbox Code Playgroud)

这是我的第一次尝试,这只捕获第一行输出:

 $ bash -c "echo stuff;sleep 3; echo more stuff" | awk '{while (( getline line) > 0 )print "got ",$line;}'
 $ …
Run Code Online (Sandbox Code Playgroud)

bash shell awk sed

8
推荐指数
1
解决办法
1446
查看次数

将第三方依赖项部署到maven存储库的简便方法

我为一个非常严格控制的组织工作,绝对不允许访问外部存储库.

我想为我们的应用程序使用Spring和Hibernate框架,并使用maven来解决依赖关系并构建项目.

我在本地服务器上建立了一个nexus"第三方"存储库,现在实际上是添加库的一部分.Hibernate 3.6.7.Final附带以下罐子:

./hibernate-testing.jar
./hibernate3.jar
./lib/required/commons-collections-3.1.jar
./lib/required/dom4j-1.6.1.jar
./lib/required/jta-1.1.jar
./lib/required/slf4j-api-1.6.1.jar
./lib/required/antlr-2.7.6.jar
./lib/required/javassist-3.12.0.GA.jar
./lib/jpa/hibernate-jpa-2.0-api-1.0.1.Final.jar
./lib/optional/c3p0/c3p0-0.9.1.jar
./lib/optional/swarmcache/swarmcache-1.0RC2.jar
./lib/optional/proxool/proxool-0.8.3.jar
./lib/optional/jbosscache/jbosscache-core-3.2.1.GA.jar
./lib/optional/oscache/oscache-2.1.jar
./lib/optional/infinispan/infinispan-core-4.2.1.CR1.jar
./lib/bytecode/javassist/javassist-3.12.0.GA.jar
./lib/bytecode/cglib/cglib-2.2.jar
Run Code Online (Sandbox Code Playgroud)

Spring 3.0.6.RELEASE附带以下内容:

org.springframework.aop-3.0.6.RELEASE.jar                
org.springframework.jdbc-3.0.6.RELEASE.jar
org.springframework.asm-3.0.6.RELEASE.jar                
org.springframework.jms-3.0.6.RELEASE.jar
org.springframework.aspects-3.0.6.RELEASE.jar            
org.springframework.orm-3.0.6.RELEASE.jar
org.springframework.beans-3.0.6.RELEASE.jar              
org.springframework.oxm-3.0.6.RELEASE.jar
org.springframework.context-3.0.6.RELEASE.jar            
org.springframework.test-3.0.6.RELEASE.jar
org.springframework.context.support-3.0.6.RELEASE.jar    
org.springframework.transaction-3.0.6.RELEASE.jar
org.springframework.core-3.0.6.RELEASE.jar               
org.springframework.web-3.0.6.RELEASE.jar
org.springframework.expression-3.0.6.RELEASE.jar         
org.springframework.web.portlet-3.0.6.RELEASE.jar
org.springframework.instrument-3.0.6.RELEASE.jar         
org.springframework.web.servlet-3.0.6.RELEASE.jar
org.springframework.instrument.tomcat-3.0.6.RELEASE.jar  
org.springframework.web.struts-3.0.6.RELEASE.jar
Run Code Online (Sandbox Code Playgroud)

据我所知,部署依赖项的两种首选方法是

1)设置一个pom; 使用命令"mvn deploy"

2)使用命令行,对于个别罐子:

 mvn deploy:deploy-file -Durl=file://C:\m2-repo \

                   -DrepositoryId=some.id \

                   -Dfile=your-artifact-1.0.jar \

                   [-DpomFile=your-pom.xml] \

                   [-DgroupId=org.some.group] \

                   [-DartifactId=your-artifact] \

                   [-Dversion=1.0] \

                   [-Dpackaging=jar] \

                   [-Dclassifier=test] \

                   [-DgeneratePom=true] \

                   [-DgeneratePom.description="My Project Description"] \

                   [-DrepositoryLayout=legacy] \

                   [-DuniqueVersion=false]
Run Code Online (Sandbox Code Playgroud)

1)我知道我可以为整个hibernate项目创建一个pom,或者创建多个pom,我猜每个外部库都有1个pom.例如,cglib-2.2.jar可以是它自己的pom,因为我知道spring有一个类似的依赖,所以为了没有(2)x cglib(s),我有1个cglib然后包含它分别是我的org.spring和org.hibernate poms中的依赖项. …

java deployment repository nexus maven

5
推荐指数
1
解决办法
7754
查看次数

使用Annotations使用Spring Hibernate编写更少的DAO

我的Spring + Hibernate配置文件很小而且非常紧凑.我使用自动扫描来查找我的模型实体/ daos.

我不想在我的层次结构中为每个实体编写DAO + DAOImpl.

有些人可能有资格拥有自己的,如果他们与其他实体有复杂的关系,并且需要的不仅仅是基本的CRUD功能.但其余的......

有没有办法规避事实上的标准?

说,像通用DAO,ex:

http://www.ibm.com/developerworks/java/library/j-genericdao/index.html

然后我可以做类似的事情

  GenericDao dao = appContext.getBean("genericDao");
  dao.save(car);            
  dao.save(lease);
Run Code Online (Sandbox Code Playgroud)

这可能带注释吗?我不想在xml中配置任何东西.如果我不能在上面做,是否仍然可以有一个类似的GenericDaoImpl.java:

 @Repository("carDao")
 @Repository("leaseDao")
 class GenericDaoImpl extends CustomHibernateDaoSupport implements GenericDao {
 ...
 }
Run Code Online (Sandbox Code Playgroud)

然后

  GenericDao dao = appContext.getBean("carDao");
  dao.save(car);            
  dao = appContext.getBean("leaseDao"); //carDao is garbage coll.
  dao.save(lease);
Run Code Online (Sandbox Code Playgroud)

这有用吗?

java generics spring dao hibernate

5
推荐指数
1
解决办法
2160
查看次数

在 gradle 中使用特定的 jre 客户端运行测试

在 64/32 位本机库的世界中,有时您需要指定特定的 jre 来运行代码。我本地安装了 64/32 位 jres。默认为 64 位,但我需要使用 32 位 jvm 运行一些测试...

我如何告诉 gradle 本地系统上 32 位 java.exe 客户端的路径?它不能是默认为jdk的java_home,我只需要在gradle.build中指定用于测试执行阶段的jre客户端。

就像是

        tasks.withType(Test) {
systemProperty "java.library.path", "C:\\here\\nativestuff\\lib"
systemProperty "java.client", "C:\\Program\ Files\ \(x86\)\\Java\\jre7\\bin\\java.exe"}
Run Code Online (Sandbox Code Playgroud)

尝试了我能想到的一切,不知道如何让它工作

java testing gradle

5
推荐指数
1
解决办法
1780
查看次数

如何在maven中创建没有meta-inf文件夹的jar?

如果我想使用jar实用程序创建一个没有META-INF废话的jar文件,我可以传递-M开关,它将:

   -M  do not create a manifest file for the entries
Run Code Online (Sandbox Code Playgroud)

请注意,这是jar实用程序的一项功能.如果我使用它,我将得到一个没有META-INF文件夹并包含MANIFEST的jar,基本上只是jar类型的存档,包含我放入的任何文件/目录.

如何使用maven-jar-plugin执行此操作?我需要这样做以符合另一个过程.(他们期望一个具有非常特定的文件/文件夹布局的jar,我不能在jar文件的根目录下有一个META-INF文件夹.)

我有配置来正确创建jar文件,我不想搞乱另一个插件......

java jar maven

4
推荐指数
2
解决办法
4620
查看次数

数据列中的Oracle 2连字符?

我有一个Oracle表(版本8i),我需要迁移到sql server,其中一列是NUMBER数据类型.在其中,它具有如下值:

--1331013400000000000000000000
--1331017903617177360300000000
--1331012863048235233700000000
Run Code Online (Sandbox Code Playgroud)

等等

0.9574875526618150
2.51572327044025
Run Code Online (Sandbox Code Playgroud)

- 看起来像存储在数字列中的实际值.我不明白破折号的用途或含义是什么,但是,当我尝试通过ssma迁移数据时,我得到"无法将字符串值放入浮点数",所以很明显sql server在这种情况下会遇到困难,因为我做.

我敢肯定我可以找到一种方法来处理这些奇怪的数据,我只是想知道这意味着什么,它是什么,我用谷歌搜索,但令人惊讶的是空手而归.有人有任何线索吗?

转储1016:

 0.2722718362012630 Typ=2 Len=9: c0,1c,17,48,54,3f,2,1b,1f
 --1331013400000000000000000000 Typ=2 Len=4: 32,ea,0,43
 0.50761421319797   Typ=2 Len=8: c0,33,4d,f,16,20,62,62
 1  Typ=2 Len=2: c1,2
 0.9574875526618150 Typ=2 Len=9: c0,60,4b,58,38,1b,3e,52,33
 1.11894371713103   Typ=2 Len=9: c1,2,c,5a,2c,48,48,20,4
 2.51572327044025   Typ=2 Len=9: c1,3,34,3a,18,1c,5,29,1a
 0.0537258905066351 Typ=2 Len=9: c0,6,26,1a,5a,6,7,40,34
 0.1851303317535540 Typ=2 Len=9: c0,13,34,1f,22,12,36,38,29
 0.0000000000000000000000000000306386   Typ=2 Len=4: b2,1f,40,57
 1.6164 Typ=2 Len=4: c1,2,3e,41
 0.1289839930864580 Typ=2 Len=9: c0,d,5a,54,64,1f,57,2e,51
 0.004721435316336170   Typ=2 Len=9: bf,30,16,2c,36,11,22,3e,47
 --1331017903617177360300000000 Typ=2 Len=10: 32,ea,0,16,62,28,1e,18,41,62
 --1331012863048235233700000000 Typ=2 Len=10: 32,ea,0,49,26,61,13,42,4e,40
 --1331010715609612880500000000 Typ=2 Len=10: 32,ea,0,5e,56,29,5,59,d,60
 0.0778391842453491 Typ=2 Len=9: …
Run Code Online (Sandbox Code Playgroud)

oracle hyphen

3
推荐指数
1
解决办法
1121
查看次数

Bash检查显示不存在的文件存在文件?

在bash中运行以下命令:

   stuff=`rpm -ql <some package> | grep dasdasdfd`
Run Code Online (Sandbox Code Playgroud)

(包中不存在的文件,退出代码= 1,标准输出为空)

  if [ -f $stuff ]; then echo "whaaat"; fi
Run Code Online (Sandbox Code Playgroud)

上面的命令检查文件是否存在...但是:

file $stuff
Run Code Online (Sandbox Code Playgroud)

只需打印文件的使用信息......和

stat $stuff
Run Code Online (Sandbox Code Playgroud)

缺少操作数......

有人可以解释一下原因吗?这是一个错误吗?难道我做错了什么?我只是想确保包中的文件出现在fs上

bash

3
推荐指数
2
解决办法
1090
查看次数

jms 1.1 和 2.0 之间有什么区别,它们是否向后兼容旧驱动程序?

我在 jms 引擎盖下使用 tibco 驱动程序来创建与 ems 代理的客户端连接...我想过将驱动程序升级到最新最好的,然后才开始想知道 javax.jms 包是否向后兼容以及版本差异是什么包含?示例:旧的 tibco 驱动程序打包在(我认为是因为它没有在任何地方明确指定)javax.jms 1.1(建于 2002 年 4 月)但是新驱动程序与 jms 2.0 捆绑在一起

java tibco jms

2
推荐指数
1
解决办法
3960
查看次数

在insert语句的选择中引用多个单词

我正在寻找一种在选择中引用单词的快速方法,比如我是从由制表符或空格字符分隔的文本块构建多个插入语句.

可以说我有

STUFF   OPEN    F   0   0   00:00:00-23:59:59
STUFF   OPEN    M   0   0   00:00:00-23:59:58
STUFF   OPEN    R   0   0   00:00:00-23:59:59
STUFF   OPEN    S   0   0   00:00:00-23:59:59
STUFF   OPEN    T   0   0   00:00:00-23:59:59
STUFF   OPEN    U   0   0   00:00:00-23:59:59
STUFF   OPEN    W   0   0   00:00:00-23:59:59
Run Code Online (Sandbox Code Playgroud)

我想得到

"STUFF" "OPEN"  "F" "0" "0" "00:00:00-23:59:59"
"STUFF" "OPEN"  "M" "0" "0" "00:00:00-23:59:58"
"STUFF" "OPEN"  "R" "0" "0" "00:00:00-23:59:59"
"STUFF" "OPEN"  "S" "0" "0" "00:00:00-23:59:59"
"STUFF" "OPEN"  "T" "0" "0" "00:00:00-23:59:59"
"STUFF" "OPEN"  "U" "0" "0" …
Run Code Online (Sandbox Code Playgroud)

sql vim text cygwin notepad++

0
推荐指数
1
解决办法
58
查看次数