Target "addoninstall" does not exist in the project "platform" - sap-commerce-cloud

This is regarding Hybris addon install issue.
I'm facing an issue while running ant addoninstall command from platform folder.
Build Failed:
Target "addoninstall" does not exist in the project "platform".
What I did was:
Created an extension using ant extgen.
Added the extension name in localextensions.xml
ran ant all
ran from platform folder:
ant addoninstall -Daddonnames="hartest" -DaddonStorefront.yacceleratorstorefront="yacceleratorstorefront"
Thanks In Advance

What you are currently try to do is to install the addon 'hartest' on the yacceleratorstorefront. The -Daddonnames parameter needs the name of the add-on you want to install on a extension. For example the 'secureportaladdon' is a correct one.
BR

I'm not sure, if it is the solution, but you should replace the yacceleratorstorefront value with your storefront extension name.
ant addoninstall -Daddonnames="hartest" -DaddonStorefront.yacceleratorstorefront="mystorefront"

Before you run the ant addoninstall command, Ensure that the addonsupport extension is listed in localextensions.xml file
...
<extension name="addonsupport"/>
...
Also, ensure that the AddOn and storefront extension that you want to install are listed in localextensions.xml file.
then run the command
ant addoninstall -Daddonnames="hartest" -DaddonStorefront.yacceleratorstorefront="yacceleratorstorefront"
But you should create your own storefront extension and install addon on custom extension rather than directly on template and make sure you choose yaddon template while creating your custom addon.

Related

How to make gopls recognize external github imports

I recently started to work on a Go project.
When I use gopls with Coc, all external imports are not recognized such as "github.com/prometheus/client_golang/prometheus". It complains it could not find this module from neither $GOROOT and $GOPATH.
This project is managed by bazel, and all depedencies are listed in WORKSPACE file. Do I have any way to install all packages based on WORKSPACE file or I have to go install all packages one by one? If the latter, I would imagine keep package version synced is challenaging.
To install all dependencies listed in the WORKSPACE file in a Bazel-managed Go project, you can use the bazel run command and the go_repository rule in the WORKSPACE file.
For example, if you have the following go_repository rule in your WORKSPACE file:
go_repository(
name = "com_github_prometheus_client_golang",
importpath = "github.com/prometheus/client_golang",
version = "0.10.0",
)
You can run the following command to install the dependencies:
bazel run //:gazelle
This will run the gazelle target, which updates the dependencies in the WORKSPACE file and generates the required BUILD files for each package in your project.
Once the dependencies are installed, they should be recognized by gopls in your editor.

Call executable inside Nuget package cache from launchSettings.json

I created a small executable that is used to run and debug specific libraries from other solutions. The executable is given the path to a library as a command line argument which the executable loads at runtime.
I want to put my executable in a Nuget package, and have consuming libraries just add the Nuget package to be able to run and debug, using a launchSettings.json.
Because the executable is in the tools/ directory of the Nuget package, its path is put into the PATH environment variable by the Package Manger Console. Therefore the launchSettings can simply just call the executable.
I create my Nuget package with nuget.exe pack my.nuspec -Version 1.0.0, with my.nuspec containing:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>DebugHost</id>
<version>$version$</version>
<title>DebugHost</title>
<authors>Some company</authors>
<owners>Some company</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>DebugHost</description>
<summary>DebugHost</summary>
<copyright>2020, Some company</copyright>
</metadata>
<files>
<file src="bin\Debug\netcoreapp3.1\*" target="tools" />
</files>
</package>
From consuming library projects I put in Properties\launchSettings.json containting:
{
"profiles": {
"DebugHost": {
"commandName": "Executable",
"executablePath": "my.exe",
"commandLineArgs": "$(ProjectDir)$(OutDir)$(TargetName)$(TargetExt)"
}
}
}
I have three different questions that are somewhat related, as any might answer another:
This setup only works as long as I keep the Package Manager Console opened. If I try to Debug / Launch the library without first opening the Package Manager Console, the launch fails because it cannot find the executable. Unable to start program 'my.exe'. The system cannot fint the file specified.
Can I for example add a targets file in the Nuget package that will hint its path during build/launch, which in turn I can use as a variable in the launchSettings.json? (If so, how?)
This setup requires that a Properties\launchSettings.json is used in the consuming project. Can I make my Nuget package create that file?
Can the file be an asset in the Nuget that gets copied to the correct place?
Or can I even have an install.ps1 script that creates the json, with the correct absolute path to the executable in it? This would make question 1 answered as well.
The above situation only works with nuget.exe pack and a .nuspec.
Can I instead move stuff into my (new style) .csproj and get this to work with just dotnet.exe pack and the .csproj? (or msbuild.exe -t:pack and the .csproj?) So ultimately I can also just create the package by simply right clicking the project in Visual Studio and selecting Pack from the context menu?

How do I update geckoFx45 to geckofx60?

I have old project it is using geckofx45 with "xulrunner" folder in project.
I tried to replace it and update with geckofx60 from Nuget package but it doesn't have xulrunner folder after completed but instead it added "Firefox" called folder.
So what should I do? I can't even rebuild project now since I didn't make a copy of old project.
Could you try different initiation path?
Instead of
Xpcom.Initialize();
You could rename your Firefox folder to xulrunner then use
Xpcom.Initialize("xulrunner");
Or you keep the Firefox folder, and use
Xpcom.Initialize("Firefox");

UAC management for an app build with electron-packager

I used the winreg npm package for my app and I need elevated privileges for the uses I have.
I would like to associate a manifest file with an app build with electron (atom-shell) and packaged on windows with electron-packager but I can not find any way to do it easily.
An old app of mine was made with cx_freeze and it sufficed to put the file with the name app.exe.manifest in the same directory.
I can't understand why it doesn't work this time.
I solved this problem.
So first thing to know is that an external manifest won't count if an embedded manifest is already present. (see answer to https://superuser.com/questions/905103/what-does-it-mean-to-enable-windows-to-prioritise-external-manifests)
And it turns out that the electron.exe has already a manifest embedded
and the package done with electron-package is mostly a rename of the
electron executable.
So in order to embed a news manifest with the right privileges needed, I took the manifest in the electron repo (see https://github.com/atom/electron/blob/master/atom/browser/resources/win/atom.manifest), edited the security section and used the mt.exe tool to add the new manifest (see https://msdn.microsoft.com/en-us/library/aa375649%28v=vs.85%29.aspx)
And tadaa !

Would JRebel work with this project setup?

we have a project where we use Maven to deploy to Tomcat on mvn clean install. I'm fairly new to Java development and finding it difficult to continually wait for install to complete to view changes. I use IntelliJ and I think the class files are only created during mvn install in the target directory.
Is it possible to use JRebel so when I save a file in IntelliJ the compiled class updates Tomcat immediately like they show on the JRebel video?
Thanks
IntelliJ saves the file automatically for you. All you need to do is to recompile the changed classes and these will be picked up by JRebel, given you have included rebel.xml configuration file into the deployed archive.

Resources