首次启动Intellij IDEA时,您将获得一些快速启动选项,包括Import Project和Open Project.这两个选项有什么区别?
根据open和import之间的区别答案,androidstudio open中的项目用于现有项目,导入用于从其他环境迁移.但是在测试时,我可以使用Import或Open项目打开[已经在Intellij中的现有项目和来自其他IDE的项目].
我想知道Intellij与Android Studio的含义是否不同.
注意:我从未使用Android Studio,所以如果它显示相同的行为,请原谅.
我的基本工作流程mvn clean install
在我的基本目录的终端中.这将创建一个带有WAR文件的目标目录.我将该war文件复制到我的Tomcat的webapps目录中.
如果我做出改变,我显然必须重复这个单调乏味的过程.我正在使用Intellij Ultimate 13.1.6,我知道可以通过基于本指南的IDE完成所有这些工作.
所以在我开始之前,我mvn clean
在我的基础上运行,删除了目标目录.
现在开始我进入项目结构 - >工件并创建一个新的Web应用程序:存档.我将它命名为project_name,默认情况下它有一个不同的输出目录(baseDir/out/artifacts/project_name vs baseDir/target),我将所有内容保留为默认值并点击确定.
现在我转到Run - > Edit Configurations并使用以下设置创建一个新的Local Tomcat Server
在部署选项卡中,我添加了在我的图片中看到的在Before发布之前构建的工件.非常直截了当.
但是,每当我通过Intellij运行服务器时,它都会成功启动,但不会部署任何内容.我收到错误:
Artifact project_name: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: /Users/path/to/workspace/project_name/out/artifacts/project_name/project_name.war not found for the web module.
我仔细检查我的目录,如错误中所示,没有创建任何内容.甚至没有out目录.
我究竟做错了什么?我知道一个解决方法是返回终端,运行mvn clean install
并使用创建的.war文件,将其放入部署配置中.我觉得这更像是一个黑客攻击,因为我仍然通过命令行执行它,如果我没有它已经构建,我不能将目标设置为查找war文件的目录.
任何帮助表示赞赏.
根据GitLab 缓存与工件的文档,应该将其node_modules
存储为缓存而不是工件。这样做的问题是,如果有多个运行程序,并且与创建“构建”的运行程序不同,那么缓存 ( node_modules
) 将不存在,这将导致 GitLab CI 随机失败(如果同一个运行程序碰巧执行了以下操作)其余的工作就会成功)。
我可以做到这一点,这样一切都可以在一项工作中完成,但是一旦我必须进行部署,这个问题就会再次出现。另一种选择是对其进行标记,以便只有一个特定的跑步者完成这项工作,但我觉得这很慢。
经过研究,我意识到我可以将其作为工件而不是缓存放入node_modules
,无论哪个运行程序运行该作业,它都会被拾取,但我找不到任何关于这是否不好的文档。
node_modules
那么作为神器放起来可以吗?如果是这样,为什么人们通常不会将其作为工件(假设他们添加了过期时间)?
我遇到一个问题,我的 e2e 测试在 GitLab 中失败,但正常通过。我将问题范围缩小到了 node_modules,并且 cypress 缓存没有延续到下一个作业。这就是WARN Local package.json exists, but node_modules missing, did you mean to install
出现错误的原因,因为 node_modules 不存在。
我认为缓存没有保留的原因是因为它被保存在一个运行器上,但是如果下一个作业在另一个运行器上,则缓存将不存在并且最终会失败。我可以将所有内容都放在一项工作中,但如果我要添加另一项工作进行部署,那么我仍然会遇到同样的问题。
这是我的 gitlab-ci.yml 文件:
image: cypress/base:12.18.4
variables:
NPM_REGISTRY: https://registry.npmjs.org/
npm_config_cache: $CI_PROJECT_DIR/.npm
CYPRESS_CACHE_FOLDER: $CI_PROJECT_DIR/cache/Cypress
stages:
- build
- test:unit
- test:e2e
- lint
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- cache/Cypress
- node_modules/
build:
stage: build
script:
# set the npm registry if different from the default
- npm config set registry $NPM_REGISTRY
- npm i
- npx cypress verify …
Run Code Online (Sandbox Code Playgroud) 我正在尝试dnf
在CENTOS 7机器上安装。使用这个作为我的指导,我跑的前两个命令
sudo yum install epel-release
sudo yum install dnf
并成功运作。
Installed:
dnf.noarch 0:0.6.4-2.el7
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试安装Spotify,根据该站点我需要运行它
[joey ~]# dnf config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
No such command: config-manager. Please use /bin/dnf --help
It could be a DNF plugin command.
Run Code Online (Sandbox Code Playgroud)
在DNF站点中,它看起来好像是2.0版,所以我猜我正在使用过时的DNF,但它看起来对我来说是最新的0.6.4-2.el7
。因此,我转到DNF Github页面尝试手动安装。我将其克隆并尝试运行第一个命令。
[joey dnf]$ sudo dnf builddep dnf.spec
No such command: builddep. Please use /bin/dnf --help
It could be a DNF plugin command.
Run Code Online (Sandbox Code Playgroud)
我不确定目前还需要做什么。我基本上只是想在我的CentOS机器上安装Spotify,而不确定如何从这里继续。
尝试/更新
[joey ~]$ sudo dnf install dnf-plugin-config-manager
CentOS-7 - cr 7.3 …
Run Code Online (Sandbox Code Playgroud)