我创建了Java项目1的类Hello.java
package com.test.java1;
@WebServlet("/hello")
public class Hello extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
....doLogic
}
}
pom.xml
<groupId>com.test</groupId>
<artifactId>java1</artifactId>
<version>0.0.1-SNAPSHOT</version>
我构建它并将war文件复制到我的java到lib文件夹中 现在我创建了java2,我想使用它
pom.xml
<dependency>
<groupId>com.test</groupId>
<artifactId>java1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<systemPath>${basedir}/lib/java1-0.0.1-SNAPSHOT.war</systemPath>
<scope>system</scope>
</dependency>
并尝试从我的第二个Java调用它,我称编译错误
package com.test2.java2
import com.test.java1
public class Test {
Hello hel - new Hell();
}
答案 0 :(得分:1)
最好使用Maven on board机制。存储库管理器通常用于这种用例,但是您也可以在本地“模拟”它。
mvn package
mvn install
在您的IDE中,您应该看到依赖关系得到了很好的解决
在更专业的情况下,尤其是如果涉及的开发人员超过一个,则应使用Nexus之类的存储库管理器。
答案 1 :(得分:1)
这可能只是复制和粘贴错误,但是当您尝试调用它时却错过了拼写为Hello的错误,请更改: 公开课测试{ 你好,Hel-new Hell();} 到:
public class Test {
Hello hel - new Hello();}
还要使您的doGet方法受到保护,并可能从主方法调用它-您不能这样做,因为只能从同一包中调用受保护的方法,因此,如果将主类移至:
package com.test.java1
您将能够调用该方法。
您的Hello类也是一个webservlet吗?我不确定您可以通过定义接受HttpRequest和httpResponse的公共调用来使doGet受保护的方法保持原样。因此,将其更改为公开状态可能会解决其他问题-不确定为什么要使其受到保护。