Browse Source

feat: Cli版本自动同步

pull/126/head
wangjun 3 years ago
parent
commit
2620001ba7
  1. 8
      aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs
  2. 3
      aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs
  3. 81
      aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs
  4. 5
      aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplacePackageReferenceExtensions.cs
  5. 48
      templates/abp-vnext-pro-nuget-all/aspnet-core/Directory.Build.Lion.targets
  6. 6
      templates/abp-vnext-pro-nuget-module/Directory.Build.Lion.targets
  7. 48
      templates/abp-vnext-pro-nuget-simplify/aspnet-core/Directory.Build.Lion.targets

8
aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/AbpProCliCoreModule.cs

@ -20,21 +20,21 @@ public class AbpProCliCoreModule : AbpModule
new AbpProTemplateOptions("abp-vnext-pro", "pro", "源码版本", true)
{
ExcludeFiles = "templates,docs,.github,LICENSE,Readme.md",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env,Directory.Build.Lion.targets",
OldCompanyName = "Lion",
OldProjectName = "AbpPro"
},
new AbpProTemplateOptions("abp-vnext-pro-nuget-all", "pro.all", "Nuget完整版本")
{
//ExcludeFiles = "aspnet-core,vben28,abp-vnext-pro-nuget-module,abp-vnext-pro-nuget-simplify,docs,.github,LICENSE,Readme.md",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env,Directory.Build.Lion.targets",
OldCompanyName = "MyCompanyName",
OldProjectName = "MyProjectName"
},
new AbpProTemplateOptions("abp-vnext-pro-nuget-simplify", "pro.simplify", "Nuget简单版本")
{
//ExcludeFiles = "aspnet-core,vben28,abp-vnext-pro-nuget-module,abp-vnext-pro-nuget-all,docs,.github,LICENSE,Readme.md",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env,Directory.Build.Lion.targets",
OldCompanyName = "MyCompanyName",
OldProjectName = "MyProjectName"
},
@ -42,7 +42,7 @@ public class AbpProCliCoreModule : AbpModule
new AbpProTemplateOptions("abp-vnext-pro-nuget-module", "pro.module", "模块")
{
//ExcludeFiles = "aspnet-core,vben28,abp-vnext-pro-nuget-all,abp-vnext-pro-nuget-simplify,docs,.github,LICENSE,Readme.md",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env",
ReplaceSuffix = ".sln,.csproj,.cs,.cshtml,.json,.ci,.yml,.yaml,.nswag,.DotSettings,.env,Directory.Build.Lion.targets",
OldCompanyName = "MyCompanyName",
OldProjectName = "MyProjectName",
OldModuleName = "MyModuleName",

3
aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/SourceCode/SourceCodeManager.cs

@ -128,7 +128,8 @@ public class SourceCodeManager : ITransientDependency, ISourceCodeManager
context.CompanyName,
context.ProjectName,
context.ModuleName,
context.ReplaceSuffix);
context.ReplaceSuffix,
context.TemplateFile.Version);
if (context.IsSource)
{

81
aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplaceHelper.cs

@ -2,13 +2,20 @@
public static class ReplaceHelper
{
public static void ReplaceTemplates(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
public static void ReplaceTemplates(
string sourcePath,
string oldCompanyName,
string oldProjectName,
string oldModuleName,
string companyName,
string projectName,
string moduleName,
string replaceSuffix,
string version)
{
try
{
RenameTemplate(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix);
RenameTemplate(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix, version);
}
catch (Exception ex)
{
@ -16,19 +23,35 @@ public static class ReplaceHelper
}
}
private static void RenameTemplate(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
private static void RenameTemplate(
string sourcePath,
string oldCompanyName,
string oldProjectName,
string oldModuleName,
string companyName,
string projectName,
string moduleName,
string replaceSuffix,
string version)
{
RenameAllDirectories(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName);
RenameAllFileNameAndContent(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix);
RenameAllDirectories(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, version);
RenameAllFileNameAndContent(sourcePath, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix, version);
}
private static void RenameAllDirectories(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName)
private static void RenameAllDirectories(
string sourcePath,
string oldCompanyName,
string oldProjectName,
string oldModuleName,
string companyName,
string projectName,
string moduleName,
string version)
{
var directories = Directory.GetDirectories(sourcePath);
foreach (var subDirectory in directories)
{
RenameAllDirectories(subDirectory, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName);
RenameAllDirectories(subDirectory, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, version);
var directoryInfo = new DirectoryInfo(subDirectory);
if (directoryInfo.Name.Contains(oldCompanyName) ||
@ -36,7 +59,7 @@ public static class ReplaceHelper
directoryInfo.Name.Contains(oldModuleName))
{
var oldDirectoryName = directoryInfo.Name;
var newDirectoryName = oldDirectoryName.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName);
var newDirectoryName = oldDirectoryName.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, version);
var newDirectoryPath = Path.Combine(directoryInfo.Parent?.FullName, newDirectoryName);
@ -47,10 +70,18 @@ public static class ReplaceHelper
}
}
}
private static void RenameAllFileNameAndContent(string sourcePath, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName,
string replaceSuffix)
private static void RenameAllFileNameAndContent(
string sourcePath,
string oldCompanyName,
string oldProjectName,
string oldModuleName,
string companyName,
string projectName,
string moduleName,
string replaceSuffix,
string version)
{
var list = new DirectoryInfo(sourcePath)
.GetFiles()
@ -62,7 +93,7 @@ public static class ReplaceHelper
{
// 改文件内容
var oldContents = File.ReadAllText(fileInfo.FullName, encoding);
var newContents = oldContents.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName);
var newContents = oldContents.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, version);
// 文件名包含模板关键字
if (fileInfo.Name.Contains(oldCompanyName)
@ -70,7 +101,7 @@ public static class ReplaceHelper
|| fileInfo.Name.Contains(oldModuleName))
{
var oldFileName = fileInfo.Name;
var newFileName = oldFileName.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName);
var newFileName = oldFileName.CustomReplace(oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, version);
var newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName);
// 无变化才重命名
@ -87,19 +118,28 @@ public static class ReplaceHelper
foreach (var subDirectory in Directory.GetDirectories(sourcePath))
{
RenameAllFileNameAndContent(subDirectory, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix);
RenameAllFileNameAndContent(subDirectory, oldCompanyName, oldProjectName, oldModuleName, companyName, projectName, moduleName, replaceSuffix, version);
}
}
private static string CustomReplace(this string content, string oldCompanyName, string oldProjectName, string oldModuleName, string companyName, string projectName, string moduleName)
private static string CustomReplace(
this string content,
string oldCompanyName,
string oldProjectName,
string oldModuleName,
string companyName,
string projectName,
string moduleName,
string version)
{
var result = content.ReplacePackageReferenceBasicManagement()
.ReplacePackageReferenceLanguageManagement()
.ReplacePackageReferenceFileManagement()
.ReplacePackageReferenceDataDictionaryManagement()
.ReplacePackageReferenceNotificationManagement()
.ReplacePackageReferenceCore();
.ReplacePackageReferenceCore()
.ReplaceLionPackageVersion(version);
if (oldModuleName.IsNullOrWhiteSpace() || oldModuleName.IsNullOrWhiteSpace())
{
@ -117,5 +157,4 @@ public static class ReplaceHelper
return result;
}
}

5
aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Utils/ReplacePackageReferenceExtensions.cs

@ -156,4 +156,9 @@ public static class ReplacePackageReferenceExtensions
"<ProjectReference Include=\"..\\..\\..\\..\\..\\aspnet-core\\modules\\NotificationManagement\\src\\Lion.AbpPro.NotificationManagement.HttpApi.Client\\Lion.AbpPro.NotificationManagement.HttpApi.Client.csproj\"/>",
"<PackageReference Include=\"Lion.AbpPro.NotificationManagement.HttpApi.Client\"/>");
}
public static string ReplaceLionPackageVersion(this string context, string version)
{
return context.Replace("MyVersion", version);
}
}

48
templates/abp-vnext-pro-nuget-all/aspnet-core/Directory.Build.Lion.targets

@ -1,34 +1,34 @@
<Project>
<!-- Lion.AbpPro包-->
<ItemGroup>
<PackageReference Update="Lion.AbpPro.Core" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Core" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi.Client" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi.Client" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi.Client" Version="MyVersion"/>
</ItemGroup>
</Project>

6
templates/abp-vnext-pro-nuget-module/Directory.Build.Lion.targets

@ -1,8 +1,8 @@
<Project>
<!-- Lion.AbpPro包-->
<ItemGroup>
<PackageReference Update="Lion.AbpPro.Core" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Core" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="MyVersion"/>
</ItemGroup>
</Project>

48
templates/abp-vnext-pro-nuget-simplify/aspnet-core/Directory.Build.Lion.targets

@ -1,34 +1,34 @@
<Project>
<!-- Lion.AbpPro包-->
<ItemGroup>
<PackageReference Update="Lion.AbpPro.Core" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.Core" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Microservices" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.Shared.Hosting.Gateways" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.BasicManagement.HttpApi.Client" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.NotificationManagement.HttpApi.Client" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application.Contracts" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain.Shared" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi.Client" Version="7.2.2.6"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Application.Contracts" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.Domain.Shared" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.EntityFrameworkCore" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi" Version="MyVersion"/>
<PackageReference Update="Lion.AbpPro.DataDictionaryManagement.HttpApi.Client" Version="MyVersion"/>
</ItemGroup>
</Project>
Loading…
Cancel
Save