这是哪一块配置的原因?导致我现在改个模板文件都要自己复制到 target 里,没办法好好工作了
1
passerbytiny 2019-09-21 09:08:43 +08:00
😰
请先了解“Maven target folder”、“maven clean”、“maven package”,最好再额外了解小“classes”、“dest”目录。 |
2
micean OP @passerbytiny
不是 maven 本身的事情 pom 都没变过 把当前分支并到其他分支,再切换回当前分支就这样了,怀疑是 idea 的原因,但是 setting->compile 那里点了几下没啥用 |
3
Solace202 2019-09-21 09:21:32 +08:00 via Android
target 本身就是 mave 编译后放置编译后文件的文件夹,class 文件,war 包啥的,每次重新编译肯定会覆盖之前的啊
|
4
Solace202 2019-09-21 09:25:01 +08:00 via Android
资源文件为啥放 target 里?建议了解下每个文件夹的功能
|
5
micean OP |
6
AlisaDestiny 2019-09-21 09:39:07 +08:00
src 目录才是你放东西的地方,target 目录全是自动生成的东西,配置好 pom 文件,src 里的东西会自动编译 /复制进 target 目录。
|
7
Bryan0Z 2019-09-21 09:45:54 +08:00 via Android
楼上都没理解问题吧,Maven 会执行 compile 前会自动执行 clean,这一步会删除 target 文件夹下面所有文件。
关于楼主的问题,可以在 pom 文件里手动指定 resources 的处理逻辑,比如每次编译都复制到指定文件夹,这样就不会有问题了 |
8
micean OP @Bryan0Z
是运行时发生的,不是启动时删除的 比如说我修改了 /resources/tamplates/下的某个模板文件 1. 如果我 recompile 整个 tamplates,tamplates 里的文件被复制到 target 相应目录里。请求读取这个文件之后,target 相应目录的大部分模板文件(包括一部分未修改的)会被删除掉 2. 如果我复制这一个模板文件到 target 相应目录,再 recompile 某个 java 文件。请求读取这个文件之后,target 相应目录的这个模板文件会被删除掉 |
9
Bryan0Z 2019-09-21 10:02:04 +08:00 via Android
@micean 对呀,每次你 recompile,target 下面都会被清空,无论你的程序对于 resources 做了什么修改,都不会在下次编译被保留。我觉得 SpringBoot 自带的多配置管理更适合你
|
10
micean OP |
11
BLK 2019-09-21 10:55:09 +08:00
重新编译不是就会删除 target 的文件,然后再重新覆盖一边嘛
|
12
micean OP 折腾了一上午,rebuild 整个工程又 tm 正常了……跟重启电脑有异曲同工之妙
|
13
yqsas 2019-09-21 12:11:10 +08:00 via iPhone
遇到过,idea 和 maven 版本都一样,一个电脑没问题,一个不能在 target 编译出 resources 的文件,时好时坏没找到原因
|
14
leey 2019-09-21 17:26:04 +08:00
我遇到过,检查是否将 resources 文件夹在 idea 里设为资源文件夹,如果没有的话,可以右键 resources 文件夹,选择菜单 Mark Directory as Sources Root。如果用 kotlin,某些 kotlin 版本也会有这个问题。更换 kotlin 版本,还有 kotlin 编译插件的版本
|