2012-01-28 28 views
0

我試圖基於this project在Github上我的項目模型。如何在非Maven項目中擁有主要/資源的等價物?

public class DroolsPlannerPoCApp { 
.... 
private static final String SOLVER_CONFIG = "/ServiceDeliverySolverConfig.xml"; 
.... 
private Solver createSolver() { 
     XmlSolverConfigurer configurer = new XmlSolverConfigurer(); 
     configurer.configure(SOLVER_CONFIG); 
     return configurer.buildSolver(); 
    } 

SOLVER_CONFIG提到的文件在於resources目錄(see here)。


我試圖做同樣的事情

package in.co.technovia.sudoku; 

import java.util.ArrayList; 
.... 
public class App{ 
    private static final String SOLVER_CONFIG = "/solver.xml"; 
    public static void main(String[] args){ 
    SudokuGenerator sg = new SudokuGenerator(); 
    .... 
    } 

    private static Solver createSolver(){ 

    XmlSolverConfigurer configurer = new XmlSolverConfigurer(); 
     configurer.configure(SOLVER_CONFIG); 
     return configurer.buildSolver(); 
    } 
} 

並且有失敗。

[email protected]:~/dev/drools/sudoku$ java in.co.technovia.sudoku.AppException in thread "main" java.lang.IllegalArgumentException: The solver configuration (/solver.xml) does not exist. 
    at org.drools.planner.config.XmlSolverConfigurer.configure(XmlSolverConfigurer.java:79) 
    at in.co.technovia.sudoku.App.createSolver(App.java:67) 
    at in.co.technovia.sudoku.App.main(App.java:43) 

我明白main/resources意味着什麼爲的Maven構建。但我正在手動構建我的項目。

問題:如何在我自己的項目中實現同樣的事情(從資源)?我必須在哪裏放置文件以及我必須在SOLVER_CONFIG中指定的內容?


function itself被實現爲:

public XmlSolverConfigurer configure(String resource) { 
    return configure(getClass().getResourceAsStream(resource)); 
} 

回答

4

穿戴類路徑的資源,例如,在源目錄。

所有的Maven確實是合併src/main/resources包/目錄樹到目標classpath中,保持相同的封裝/文件夾的佈局。

0

如果您手動構建你需要的資源手動複製到類路徑,即複製XML文件在你生成的類目錄的根路徑。

相關問題