Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Maven在IntelliJ中构建本地和生产环境_Java_Spring_Spring Mvc_Intellij Idea - Fatal编程技术网

Java 使用Maven在IntelliJ中构建本地和生产环境

Java 使用Maven在IntelliJ中构建本地和生产环境,java,spring,spring-mvc,intellij-idea,Java,Spring,Spring Mvc,Intellij Idea,我有一个简单的SpringMVC应用程序,使用maven和intellij 如何为生产和开发创建单独的文件 e、 假设我想为nhibernate设置一个生产和开发mysql连接字符串 我怎样才能在构建时使用正确的文件来获取配置信息?(还有关于文件命名约定的建议吗?使用ant任务非常简单 首先,在您的pom中的下创建两个配置文件: <profiles> <profile> <id>build-dev</id> <activa

我有一个简单的SpringMVC应用程序,使用maven和intellij

如何为生产和开发创建单独的文件

e、 假设我想为nhibernate设置一个生产和开发mysql连接字符串


我怎样才能在构建时使用正确的文件来获取配置信息?(还有关于文件命名约定的建议吗?

使用ant任务非常简单

首先,在您的
pom
中的
下创建两个配置文件:

<profiles>
  <profile>
    <id>build-dev</id>
    <activation>
      <!-- <activeByDefault>true</activeByDefault> -->
      <property>
        <name>env</name>
        <value>dev</value>
      </property>
    </activation>
    <properties>
      <config.name>config.dev.properties</config.name>
    </properties>
  </profile>
  <profile>
    <id>build-prod</id>
    <activation>
      <property>
        <name>env</name>
        <value>prod</value>
      </property>
    </activation>
    <properties>
      <config.name>config.prod.properties</config.name>
    </properties>
  </profile>
</profiles>
现在,您只需在运行
mvn
时指定所需的配置文件。如果需要默认值,请取消注释并放置:

<!-- <activeByDefault>true</activeByDefault> -->


默认情况下,配置文件中的节。事实上,如果两个任务都没有指定,构建将在ant任务上失败

有很多方法可以做到这一点

一般来说,DB连接字符串之类的内容可以进入属性文件,并在SpringXML配置文件中使用。一个常见的ish技巧是创建一个自定义实现,用于查找
-D
启动参数、用户名、机器名等,这些参数可用于决定实际使用哪个属性文件

同样的技巧也可以用于Spring配置文件,方法是创建一个XmlWebApplicationContext的实现(?我永远记不起子类是什么),该实现添加/修改默认值,例如添加以用户名或机器名开头的文件、
-D
启动参数值等等

顺便说一句,您没有使用NHibernate如果您使用的是Java,那么您使用的是Hibernate


编辑Brian的方法是其中一种“多种方法”,我只是喜欢在不构建的情况下保持它的可配置性,即基于任意“本地”条件的动态性,等等。这样我就可以很容易地交换东西。

呃,我非常喜欢“保持简单,愚蠢”这一类。我实际上发现,最初在maven站点上,这是处理不同配置文件的推荐方法;不过现在似乎找不到。@BrianRoach只要您的需求从未改变,开发人员就不必自己进行任何设置,而且您只部署了一组有限的配置,当然。我在现实生活中没有遇到过这种情况,但是YMMV。以这种或那种方式使事情变得琐碎可重写,这为我的团队节省了大量的时间——这些子类实际上有半打/十几行长。我从来没有发现需要做任何其他事情。20年后。这就是说,我不做网络或桌面的事情,通常在任何给定的应用程序中使用一组相当狭窄的参数。我猜我的里程可能以公里为单位;)@BrianRoach我怀疑你已经使用Maven或Spring 20年了;)仅保留特定于开发人员的数据库设置就要支付入场费;已经5年没有在Spring项目中使用它了。但即使回到过去,除了默认/标准配置之外,我们通常还需要用户特定的配置。更不用说异构集群部署了:/我知道我没有使用spring还有另一个原因:)除此之外,我想说的是,我从未发现配置文件/管理是一项艰巨的任务。我对maven还是有点“嗯”。依赖关系管理的东西是可以的,但总的来说,它似乎喜欢把非常简单的事情变得非常(过于)复杂。当然,使用m4或任何其他GNU工具也从来没有什么乐趣。有点离题,但我读了你的另一篇文章,关于每秒获得15K请求,你有我可以联系你的电子邮件吗?非常好奇!
<!-- <activeByDefault>true</activeByDefault> -->