小编loo*_*oka的帖子

从 GitHub Action 发布时,GITHUB_TOKEN 需要什么权限

GITHUB_TOKEN我试图限制我的存储库可以访问的操作范围。其中一个操作会在我的存储库中创建一个草稿版本——我希望它只能创建该草稿,而不能创建其他任何东西。

看看这里的可用权限: https: //docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions没有专门用于发布的权限(甚至没有真正的标记) 。这是否被视为“部署”?我在这里缺少什么吗?

github-actions

15
推荐指数
2
解决办法
1万
查看次数

如果另一个在gradle中不是UP-TO-DATE,则仅运行任务

我想在Gradle中进行功能测试时自动添加serverRun任务,所以我添加了一个依赖项:

funcTestTask.dependsOn(serverRun)
Run Code Online (Sandbox Code Playgroud)

无论funcTestTask是否运行,都会导致任务运行

:compile
:serverRun
:funcTestTask (and associate compile tasks... etc)
:serverStop

OR

:compile UP-TO-DATE
:serverRun <-- unnecessary 
:funcTestTask UP-TO-DATE
:serverStop
Run Code Online (Sandbox Code Playgroud)

启动服务器的成本非常高,我只想在FunctionalTest 不是 UP-TO-DATE时启动它,我想做什么或者其他什么:

if(!funcTestTask.isUpToDate) {
    funcTestTask.dependsOn(serverRun)
}
Run Code Online (Sandbox Code Playgroud)

所以我知道我不知道funcTestTask的最新状态,直到它的所有输入/输出被确定但是我可以继承它的uptoDate检查器吗?

serverRun.outputs.upToDateWhen(funcTestTask.upToDate)
Run Code Online (Sandbox Code Playgroud)

替代方案是在FuncTest中"doFirst"ServerRun,我认为这通常不赞成?

funcTestTask.doFirst { serverRun.execute() }
Run Code Online (Sandbox Code Playgroud)

有没有办法在另一个之前有条件地运行任务?

更新1
尝试设置输入/输出相同

serverRun.inputs.files(funcTestTask.inputs.files)
serverRun.outputs.files(funcTestTask.outputs.files)
Run Code Online (Sandbox Code Playgroud)

这似乎重新运行服务器重新编译(好),跳过重新运行成功未更改的功能测试(也很好),但不会重新运行测试失败的测试,如下所示

:compile
:serverRun
:funcTestTask FAILED

then

:compile UP-TO-DATE
:serverRun UP-TO-DATE <-- wrong!
:funcTestTask FAILED
Run Code Online (Sandbox Code Playgroud)

task gradle

8
推荐指数
2
解决办法
4260
查看次数

使用filetree(不是存档)创建gradle配置

我有一个带有多个战争模块的耳格式项目.

使用依赖的标准EAR机制:

dependencies {
  deploy project(path: "war1", configuration: "archives")
  deploy project(path: "war2", configuration: "archives")
}
Run Code Online (Sandbox Code Playgroud)

我可以创建一个爆炸的EAR输出,看起来像这样:

exploded-ear
 |-- war1.war
 \-- war2.war
Run Code Online (Sandbox Code Playgroud)

然而,我真正想要的是

exploded-ear
 |-- exploded-war1
 \-- exploded-war2
Run Code Online (Sandbox Code Playgroud)

我一直在寻找一段时间,configurationGradle中的机制似乎不允许任何不是存档的东西.我想要的是定义一个引用fileTree的配置(这将是我的子项目中爆炸战争的位置),以便我的耳朵(以及因此我爆炸的耳朵)包含爆炸战争.

java ear war gradle exploded

5
推荐指数
0
解决办法
192
查看次数

在known_hosts文件中有哪些部分ECDSA条目

我正在尝试从我的known_hosts文件中提取ecdsa公钥,ssh用它来验证主机.我下面有一个例子.

这是我的known_hosts文件中"127.0.0.1 ecdsa-sha2-nistp256"的条目:

AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF3QCzKPRluwunLRHaFVEZNGCPD/rT13yFjKiCesA1qoU3rEp9syhnJgTbaJgK70OjoT71fDGkwwcnCZuJQPFfo =

我通过base64解码器运行它来得到这个:

ECDSA-SHA2-nistp256nistp256A] 2F [RUF =wXʈ'ZSzħ2r`M:: WL0rp

所以我假设这些问号是某种分隔符[ 编辑:那些是长度].我认为nistp256是使用的椭圆曲线,但最后一个值究竟是什么?根据我一直在阅读的内容,ecdsa的公钥有一对值x和y,代表曲线上的一个点.有没有办法从那里提取x和y?

我正在尝试将其转换为java公钥对象,但我需要x和y才能这样做.

ssh cryptography ecdsa

4
推荐指数
2
解决办法
5698
查看次数

Gradle javaCompile任务是否总是重新编译所有java类(包括未更改的?)

我可以得到一个ant编译只重建已经改变的java类,但我不能让Gradle这样做.

我有一个结构项目

root
  /src/main/java
     /pkg1/File1.java
     /pkg2/File2.java
  /build.gradle
  /build.xml (for comparing against ant)
Run Code Online (Sandbox Code Playgroud)

File1和File2不相互依赖.File1和File2包含正确的包信息

我的build.gradle文件只有1行

apply plugin: 'java'
Run Code Online (Sandbox Code Playgroud)

Ant:当我这样做时,ant compile它会创建两个.class文件File1.class和File2.class.当我更改File2.java并重新编译时,只有File2重建.这是我期望的行为?

Gradle:当我这样做时,gradle compileJava它会创建两个.class文件File1.class和File2.class.当我只更改File2.java并重新编译时,重建了File1和File2.为什么File1在这里重新编译?

这可能是由于配置问题?或者目前Gradle是不可能的?也许这首先是一个坏主意,如果是这样,为什么?

为了完整性,ant文件看起来像这样:

<property name="src" location="src/main/java/"/>
<property name="build" location="build"/>

<target name="init">
  <tstamp/>
  <mkdir dir="${build}"/>
</target>

<target name="compile" depends="init" description="compile the source " >
  <javac srcdir="${src}" destdir="${build}" includeDestClasses="true"/>
</target>
Run Code Online (Sandbox Code Playgroud)

java gradle

0
推荐指数
1
解决办法
4308
查看次数

标签 统计

gradle ×3

java ×2

cryptography ×1

ear ×1

ecdsa ×1

exploded ×1

github-actions ×1

ssh ×1

task ×1

war ×1