2017-08-25 34 views
0

问题的第一部分是为什么在eclipse中看不到Jboss内置的hibernate jar? Q关于图书馆部署的最佳实践

从PHP Web开发背景到Java EE并面临使用我的代码运输库的挑战。许多jar让代码太大,我觉得这不是处理我的项目依赖关系的最佳方式,所以开始使用Maven作为依赖管理器(在php中使用composer)。这留下了如果不使用maven最佳实践的问题。下面最好问一下。

第二部分

使用应用程序服务器来学习并在其上,其测试的JBoss EAP 7.0。我看到它带有hibernate核心jar文件,所以我认为我不需要下载hibernate实现并将其导入到我的项目中。问题是,在eclipse中,即使我导入了服务器库,也没有看到这些类。

现在问题看起来部分分成,这里是他们:

  • 除了使用像Maven的依赖管理,这将是最好的做法航运库我的代码?说开源或编码为商业公司的情况。

阅读有关单独分离罐子并使用AS导入它们或将罐子放置在服务器结构中以使它们由AS提供的建议。但我不知道这是否是最佳选择。

  • 关于到JBoss Hibernate中,我导入服务器库,但无法找到休眠核心的图像

jars provided by JBoss EAP

所以导入org.hibernate.SessionFactory实例例如没有解决英寸这里的解决方案是什么?难道我不应该不是因为它是由JBoss提供的吗?或者至少在使用Maven的情况下,它会与提供的子句?

  • 最后一个问题,derby jars附带JDK,我需要在我的项目中手动将它们添加到eclipse中,以便在部署时将它们运送到内部。这里最好的做法是什么? ....将罐子复制到我的项目中,将项目指向我的系统上罐子的位置,使用具有指向的“提供”子句的maven或仅使用maven将其仅导入它们。

注:包括休眠,德比,只是为了学习和测试EJB &记录的代码,如果我下载手动冬眠罐子,复制德比罐子从JDK文件夹EJB &记录&使用服务器库运行完全正常。

回答

1

关于maven的部分:

你应该definelty使用Maven管理项目依赖条件。它是java世界的标准。如果你想尝试一些不同的东西,你可以使用Gradle,但maven更简单。

关于如何运送你的应用程序:

当你想提供您的应用程序,可以将其打包为具有所有neccesary依赖条件的单个脂肪罐子。这样,你只能发送一个罐子,你的应用程序可以使用java -jar ... 开始看看在maven shade plugin

关于休眠:

里面你的pom.xml你应该增加有关休眠的依赖。这样,日食错误将被固定

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>5.2.10.Final</version> 
    <scope>provided</scope> 
</dependency> 

关于德比:

您也可以在德比添加您的POM内运行时依赖性:

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derby</artifactId> 
    <version>10.13.1.1</version> 
    <scope>runtime</scope> 
</dependency> 
+0

关于Hibernate中,加入作为在pom.xml中的依赖将导致下载jar吧?包装时,它会与它一起打包吗?为什么这种方法即使它与JBoss EAP一起呢? – Anddo

+1

@Anddo更新了答案,自JBoss EAP包含它以来,hibernate依赖性需要提供范围。提供的范围是编译时间。 – yamenk