我已经创建了一个maven插件来启动,清理和停止数据库.我的项目包含一个包含4个模块的pom文件:
<modules>
<module>infrastructure</module>
<module>domain</module>
<module>application</module>
<module>presentation</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
该插件仅在此pom中指定,而不是在模块的pom中指定.当我转到cmd以启动数据库时:
mvn hsqldb:startdb
Run Code Online (Sandbox Code Playgroud)
Maven尝试为每个pom文件创建一个数据库.它实际上启动了5个数据库(一个用于父pom,一个用于每个模块).但是,我只想要一个(来自父pom).在我的父pom文件中,插件声明如下:
<plugin>
<groupId>sample.plugin</groupId>
<artifactId>hsqldb-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<inherited>false</inherited>
<dependencies>
<dependency>
...
</dependency>
</dependencies>
<executions>
...
</executions>
<configuration>
...
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我的问题的解决方案?
亲切的问候,
WALLE
问题很简单.如何在另一个java进程中启动main方法?现在我这样做:
startOptions = new String[] {"java", "-jar", "serverstart.jar"};
new ProcessBuilder(startOptions).start();
Run Code Online (Sandbox Code Playgroud)
但他们要求我不要使用外部.jar文件.serverstart.jar显然有一个main方法,但是可以在不调用.jar文件的情况下在另一个进程中调用该main方法吗?
我在考虑这样的事情:
new ProcessBuilder(ServerStart.main(startOptions)).start();
Run Code Online (Sandbox Code Playgroud)
但我不知道是否存在这样的事情.
亲切的问候,
我对Prolog很新,我需要一些小问题的帮助:
我试图在两个列表中拆分一对夫妇.第一个列表包含具有给定键的所有对,第二个列表包含所有其他对象.
这是我到目前为止的代码:
splitList([],_,[],[]).
splitList([(A,X)|Rest], B, [Elem1|List1], [Elem2|List2]):-
(
A == B
->
Elem1 = (A,X),
splitList(Rest, B, List1, [Elem2|List2])
;
Elem2 = (A,X),
splitList(Rest, B, [Elem1|List1], List2)
).
Run Code Online (Sandbox Code Playgroud)
当我尝试测试时,这就是我得到的:
[trace] [3] 143 ?- splitList([(1,yellow),(1,blue),(2,yellow),(2,blue)],1,X,Y).
Call: (37) splitList([ (1, yellow), (1, blue), (2, yellow), (2, blue)], 1, _G4821, _G4822) ? creep
Call: (38) 1==1 ? creep
Exit: (38) 1==1 ? creep
Call: (38) _G4928= (1, yellow) ? creep
Exit: (38) (1, yellow)= (1, yellow) ? creep
Call: (38) splitList([ (1, …Run Code Online (Sandbox Code Playgroud)