我遇到了JPA审核和@Embedded会员的问题.请考虑以下示例场景:
我在Oracle DB中设置了一个测试表:
CREATE TABLE AUDIT_TEST (
ID NUMBER(38) NOT NULL PRIMARY KEY,
CREATION_DATE TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我@Entity用审计定义了一个JPA :
@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "AUDIT_TEST")
public class AuditTest {
private Long id;
private LocalDateTime creationDate;
@Id
@Column(name = "ID")
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
@CreatedDate
@Column(name = "CREATION_DATE")
public LocalDateTime getCreationDate() { return creationDate; }
public void setCreationDate(LocalDateTime creationDate) {
this.creationDate = creationDate; …Run Code Online (Sandbox Code Playgroud) 假设我有一个命名空间元素的 XML 架构定义,我希望将其用作第二个命名空间中 XML 元素的子元素。
举个例子,假设我们有文件foo.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:foo-ns" targetNamespace="urn:foo-ns"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="foo" type="fooType"/>
<xs:complexType name="fooType">
<xs:attribute name="id" use="required"/>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
以及文件bar.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:bar-ns"
targetNamespace="urn:bar-ns"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:foo-ns="urn:foo-ns"
elementFormDefault="qualified">
<xs:import namespace="urn:foo-ns" schemaLocation="foo.xsd"/>
<xs:element name="bar" type="barType"/>
<xs:complexType name="barType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="foo" type="foo-ns:fooType"/>
</xs:sequence>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
那么我期望以下文件bar.xml是有效的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<bar name="myBar" xmlns="urn:bar-ns">
<foo id="myFoo" xmlns="urn:foo-ns"/>
</bar>
Run Code Online (Sandbox Code Playgroud)
然而,我的 XML 验证器抱怨 foo 元素的命名空间声明;相反,它坚持以下文件有效:
<?xml version="1.0" encoding="UTF-8"?> …Run Code Online (Sandbox Code Playgroud) 精简版
有人能告诉我如何在Azure DevOps构建管道中设置"命令行脚本"任务,该管道将更改推送到本地Git存储库(事实上,管道所基于的Git存储库)?
无论我尝试什么,我的脚本总是在打印后超时Pushing commits to git.
更长的版本
我们正在将现有的Java/Maven项目从Jenkins构建服务器迁移到Azure DevOps构建环境,我正在尝试设置一个模仿Jenkins"Release Staging"功能的构建管道.
我的第一次尝试是直接在签出的源上调用Maven发布插件.这涉及到几个障碍,其中大部分都是我能够以某种方式克服的:
git config在推送之前调用单独的"命令行脚本"任务来解决.git checkout master.设置完成后,我的Maven调用脚本会运行到释放插件尝试推送到Git的位置; 读取日志文件中的相应行
[INFO] Executing: cmd.exe /X /C "git push https://xxx.visualstudio.com/YYY/_git/zzz refs/heads/master:refs/heads/master"
[INFO] Working directory: D:\a\1\s</code>
Run Code Online (Sandbox Code Playgroud)
之后,在超时发生之前没有任何事情发生(至少没有记录任何内容):
##[error]The operation was canceled.
##[section]Finishing: Maven pom.xml
Run Code Online (Sandbox Code Playgroud)
为了找出导致这个问题的原因,我尝试了一些事情,其中包括:
git push直接从脚本调用,但没有成功.我现在已经没有想法如何git push接到工作电话了 - 这里是否有人可以帮助我?
PS:你可能会说,就Azure DevOps而言,我是一个新手,所以我肯定不知道该系统的所有技巧和功能.特别是,我不知道是否有任何东西提供与Maven发布插件相同的功能.我们确实使用Azure DevOps包管理,但我们希望为快照和发布版本(Nexus等工具的方式)保留单独的订阅源,因此我们必须有一个机制来自动推进版本号,签出和返回构建包装模块并将其发布到发布订阅源.
如果有人可以提出另一种方法来实现这一点,我也愿意接受建议.