Where is signed-aligned apk output? (Maven) - output

Where does the signed and aligned apk go when I do Maven release?
The only place I can find a "app-signed-aligned.apk" is in ./trunk/target/checkout/projectname/target/app-signed-aligned.apk
Is this the apk that I should use to send to Play? Or where is it? In .m2 folder? Checkout dir seems a strange place to put the output in...

It depends on the Maven lifecycle phase you run
package: find it in target
install: find it in .m2/...
deploy: find it in the repository in your Maven repository manager (like Sonatype Nexus Repository Manager)

Related

Update package installed from git in Yarn 3

How to update a proprietary dependency installed from Git repo with Yarn 3?
package.json entry:
"#foo/utils": "git+https://gitlab+deploy-token-...:...#gitlab.com/foo/bar.git#ISSUE-6652-some-git-branch",
yarn up #foo/utils results in the following error:
➤ YN0027: #foo/utils#git+https://gitlab+deploy-token-...:...#gitlab.com/foo/bar.git#ISSUE-6652-some-git-branch can't be resolved to a satisfying range
Internal Error: The remote server failed to provide the requested resource
I need to update the package to latest commit in that branch and the only way I currently know is removing entry for this package manually from yarn.lock, but I guess that's not how things should be done.
It's not ideal since it's interactive, but you can run yarn up -i #foo/utils and choose "reuse" to force the package to resolve (and reinstall) from the same git source again.

CMake dependency in a project

I am working on a project that depends on CMake. When I download CMake and I add it to the root of the repo I still have the same error.
CMake is a pre-requisite to build this repository but it was not found on the path.
Please install CMake from http://www.cmake.org/download/ and ensure it is on your path.
Where and how should I add CMake to the project?
While I don't know what you mean by repo, after searching for the error message
CMake is a pre-requisite to build this repository but it was not found on the path.
It seems you are working with dotnet/corefx or an older version of dotnet/coreclr.
Indeed, it looks like a problem similar to yours has been fixed on May 30, see commit entitled Improve CMake detection on Windows when not in PATH here: https://github.com/dotnet/corefx/issues/28799

NPM doesn't install module dependencies when deploying a Grunt app to heroku

I'v made a static single page site using grunt. I'm now trying to deploy it to heroku using the heroku-buildpack-nodejs-grunt for node grunt.
Below is a pic of my root directory:
Here's my Gruntfile package.json:
Procfile:
web: node index.html
When I run $ git push heroku master it gets to the Gruntfile and fails:
-----> Found Gruntfile, running grunt heroku:production task
>> Local Npm module "grunt-contrib-uglify" not found. Is it installed?
The above errors proceed to list all local NPM modules as not found. If I list all loadNpmTasks instead of using "load-grunt-tasks", I get the exact same error.
When I $ heroku logs I get:
Starting process with command `node web.js`
Error: Cannot find module '/app/web.js'
Can anyone see where I've gone wrong?
For anyone passing by here, I wasn't able to solve the problem. This is where I got to:
In my Gruntfile, I moved npm modules from devDependencies to dependencies. Heroku was then able to install these dependencies.
However, when Heroku ran the tasks, it stops at the haml task w/ error "You need to have Ruby and Haml installed and in your PATH for this task to work". Adding ruby & haml to the Gruntfile as engines did not work.
The only thing I can think of is that maybe Heroku installs your devDependencies first, tries to run Grunt, but since it didn't install load-grunt-tasks yet, you don't get the grunt.loadNpmTasks( 'grunt-contrib-uglify' ); line (which load-grunt-tasks does for you), and thus Grunt can't find the package.
Can you try changing your Gruntfile to explicitly list out all npm modules using the grunt.loadNpmTasks() method?
EDIT:
Just remembered another thing I had to do:
heroku labs:enable user-env-compile -a myapp
heroku config:set NODE_ENV=production
(Obviously replacing myapp with your Heroku app name.)
This makes Heroku allow user set environment variables and then sets your server to production. Try that, and set your dependencies and devDependencies as you had them originally (just to see if it works).
I am coming pretty late to the game here but I have used a couple methods and thought I would share.
Option 1: Get Heroku to Build
This is not my favorite method because it can take a long time but here it is anyway.
Heroku runs npm install --production when it receives your pushed changes. This only installs the production dependencies.
You don't have to change your environment variables to install your dev dependencies. npm install has a --dev switch to allow you to do that.
npm install --dev
Heroku provides an article on how you can customize your build. Essentially, you can run the above command as a postinstall script in your package.json.
"scripts": {
"start": "node index.js",
"postinstall": "npm install --dev && grunt build"
}
I think this is cleaner than putting dev dependencies in my production section or changing the environment variables back and forth to get my dependencies to build.
Also, I don't use a Procfile. Heroku can run your application by calling npm start (at least it can now almost two years after the OP). So as long as you provide that script (as seen above) Heroku should be able to start your app.
As far as your ruby dependency, I haven't attempted to install a ruby gem in my node apps on Heroku but this SO answer suggests that you use multi buildpack.
Option 2: Deploy Your Dependencies
Some argue that having Heroku build your application is bad form. They suggest that you should push up all of your dependencies. If you are like me and hate the idea of checking in your node_modules directory then you could create a new branch where you force add the node_modules directory and then deploy that branch. In git this looks like:
git checkout -b deploy
git add -f node_modules/
git commit -m "heroku deploy"
git push heroku --force deploy:master
git checkout master
git branch -D deploy
You could obviously make this into a script so that you don't have to type that every time.
Option 3: Do It All Yourself
This is my new favorite way to deploy. Heroku has added support for slug deploys. The previous link is a good read and I highly recommend it. I do this in my automated build from Travis-CI. I have some custom scripts to tar my app and push the slug to Heroku and its fast.
I faced a similar problem with Heroku not installing all of my dependencies, while I had no issue locally. I fixed it by running
heroku config:set USE_NPM_INSTALL=true
into the path, where I deployed my project from. This instructs Heroku to install your dependencies using npm install instead of npm ci, which is the default! From Heroku dev center:
"Heroku uses the lockfiles, either the package-lock.json or yarn.lock, to install the expected dependency tree, so be sure to check those files into git to ensure the same dependency versions across environments. If you are using npm, Heroku will use npm ci to set up the build environment."

Git clone from github

If I want to install a package into Sublime Text 2, I can use the Package Control plugin. But say I want to install a package that is not available through that means.
I am told to 'git clone' from github and the command line is usefully included eg:
git clone https://github.com/mpmont/ci-snippets.git ci-snippets
But I cannot find an explanation of how to use it. I've tried pasting it into the console but just get 'Syntax Error'
I'm using Windows 7.
Help!
You have to install git first.
After you have installed (msys)git, open windows explorer, right click on your target folder and choose "Git Bash". In this shell you can use
git clone https://github.com/mpmont/ci-snippets.git ci-snippets
to clone the repository.
Realize you may just be cloning but you may also add the repository to package control, then install it through that.
To add a repository through package control, open the command palette and enter Package Control: Add Repository. Then input the URL. Note this URL should not contain the .git extension. Then, you can install the package via package control as you would with any other package. Of course, cloning also works, but just thought I would throw this out there if you didn't want to worry about doing all the git stuff.

How to install and use JFreeChart in Play Framework

I'm using play 1.2.4 and I would like to add JFreeChart in to my project
Does anyone know how to install and a simple use? I have try google for examples but didn't find any with play framework.
thanks in advance
dependencies file
require:
- play
- jfree ->jfreechart 1.0.13
Play project's dependencies are configured in conf/dependencies.yml file (see Play documentation about dependency management).
Since various versions of JFreeChart can be found from central Maven repository, all you have to do is add the following (last) line into your dependencies file:
# Application dependencies
require:
- ...
- org.jfree -> jfreechart 1.0.14
After that, run play dependencies command, which should download the needed JARs and install them into lib folder of your project. You should now be set to use JFreeChart classes in your project.