우리는 빌드 파일을 개미에서 메이븐 플러그인으로 변환하고 있습니다. 우리는 maven plugin에서 데이터베이스 (hsqldb)를 시작/중지하려고합니다.메이븐 플러그인에서 포크와 스폰 설정하기
데이터베이스를 시작하는 데 성공했습니다. 그러나 플러그인이 실행될 때 플러그인이 데이터베이스를 중지한다고 생각합니다. 데이터베이스는 실행 후 계속 실행되어야하지만 즉시 중단됩니다.
우리는 'fork'와 'spawn'속성 (우리는 개미의 build.xml에도 있음)을 사용해야한다고 생각하지만 자바 클래스에서 이들을 구현하는 방법을 모르고 있습니다. 우리의 DatabaseController (AbstractMojo에서 확장).
아이디어가 있으십니까? 우리가 플러그인을 실행하면
hsqlServer = new Server();
hsqlServer.setLogWriter(null);
hsqlServer.setSilent(true);
hsqlServer.setDatabaseName(0, "database");
hsqlServer.setDatabasePath(0, "file:data/database");
getLog().info("Starting server!");
hsqlServer.start();
이 데이터베이스는 우리가 심지어 테이블을 생성하고 데이터를 기록 관리, 시작 : 우리는 HSQLDB를 사용하고
, 우리는 초기화하는 방법 코드를 야그. 그런 다음 플러그인이 중지되고 서버가 자동으로 중지합니다. 당신이 할 수있는
글쎄,'hsqlServer.stop()'에서 NullPointerException이 발생하면'hsqlServer'는 null이어야합니다. 맞습니까? 아니면'hsqlServer.stop()'_throws_ NullPointerException을 의미합니까? 이 경우 스택 추적을 제공하십시오. –
nullPointerException이 수정되어 이제 cmd에서 데이터베이스를 실행할 수 있습니다. 문제는 플러그인을 실행할 때 플러그인이 중지 될 때 데이터베이스가 여전히 종료된다는 것입니다. 우리는 데이터베이스를 유지하기 위해 일종의 루프를 만들었고 완전히 작동합니다. 이제 유일한 문제는 프로그램이 루프에서 '갇혀 있기'때문에 cmd에서 더 이상 아무것도 할 수 없으며이를 피하기 위해서입니다. 어쩌면이 문제를 해결할 수있는 다른 방법이있을 수 있지만 포크 및/또는 스폰 이외의 다른 것을 생각할 수는 없습니다. – Walle